# glass

Connects your coding agent to native desktop and mobile GUI applications. It runs the software, drives input, and checks UI states so the model can fix bugs autonomously.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 20
- Author: fixed-width
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/fixed-width/glass
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/glass

## What it does

glass treats native software as an external black box. It skips routine screenshots entirely. The server runs binaries, captures frames, injects input, and collects application logs. When inspecting widgets, the agent queries the accessibility tree using `glass_a11y_snapshot`. For raw graphics, `glass_diff` computes pixel delta percentages and outputs bounding boxes in text.

The core is written in Rust. It supports X11, Wayland, Windows, macOS, alongside Android emulators and the iOS Simulator. Host input isolation depends on the target environment. On Windows and macOS, simulated clicks share the physical desktop, while Linux virtual displays and mobile emulators stay isolated. If prompt tokens are tight, `glass-mcp --tool-profile lean` merges multiple tools into `glass_do`.

## Requirements
- Needs: a prebuilt binary from the repository releases

## Install

### Claude Code (native platform)

**Install**
- The MCP registry has no launch command for it: see the repository README

## When to use it
- debug native desktop bugs without manual screenshot approvals
- inspect UI widgets and control states through the accessibility tree
- measure visual updates via pixel diffs to reduce vision token spend
- drive automated test flows inside Android emulators and the iOS Simulator

## Example prompts
- Run `tasks_demo.py` under glass and trace why clicking Add does not insert a new task.
- Take an accessibility snapshot of the current window and fill out the username field.
- Click the Save button using `glass_do` and verify the success notification in logs.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
