Computer Use
Let any coding agent use your computer
An open-source MCP server that reads the screen through accessibility trees, clicks and types in the background, and drives your signed-in Chrome — on macOS, Windows and Linux. Works with Claude Code, Codex, Cursor and MT Code.
Built the way the best agents work
The strongest computer-use systems look, act, then verify — and they reach for the accessibility tree before they reach for pixels. This server is designed around exactly that loop.
Accessibility first, pixels second
get_app_state returns the app's accessibility tree with stable element ids, so the agent presses the button instead of guessing at a coordinate. Screenshots are for verifying and for canvases the tree cannot describe — and they cost a fraction of the tokens.
Background control
Clicks, typing and scrolling are delivered straight to the target window. Your mouse does not move and your focus is not stolen, so you keep working while the agent works.
Coordinates that land
Every screenshot carries its screen origin and pixels-per-point, and zoom captures any region at full physical resolution. Coordinates read off a Retina or downscaled image go where the agent meant.
Your browser, your logins
The Chrome extension gives the agent its own labelled tab group inside your signed-in Chrome. Your tabs stay yours — until you hand one over for a flow already signed in or half-finished, and it comes back untouched.
One tool surface, three platforms
The same 28 tools with identical names and arguments on macOS (Swift, Accessibility API), Windows (Rust, UI Automation) and Linux (Rust, AT-SPI). A model that learned them once needs nothing new elsewhere.
Any model, any client
Plain MCP over stdio. No vision model is required for interaction, so it works with Claude Code, Codex, Cursor, MT Code and local models alike.
The tools
| Area | Tools |
|---|---|
| See | list_apps · get_app_state · screenshot · zoom · list_displays |
| Act | click · right_click · hover · drag · scroll · type_text · set_value · select_text · press_key · activate_app · wait |
| Browser | browser_open_tab · browser_list_tabs · browser_use_tab · browser_release_tab · browser_select_tab · browser_navigate · browser_snapshot · browser_click · browser_type · browser_press_key · browser_close_tab · browser_close_all_tabs |
get_app_state takes a query to find a control by its label without reading a whole tree. hover reveals menus that only appear on mouse-over. wait pauses for loads. zoom reads small text.
Set up in three steps
Get the binary
Download the signed macOS universal build or the Windows build from GitHub Releases, or build from source: swift build -c release in macos/ (macOS 14+), cargo build --release in windows-linux/. Put the munim-computer-use binary on your PATH.
Grant permissions once
On macOS run munim-computer-use request-permissions to be prompted for Accessibility and Screen Recording. Windows and Linux need nothing extra for the desktop; the Chrome extension registers its own native host with install.sh or install.ps1.
Point your agent at it
Register the binary as an MCP server in Claude Code, Codex or Cursor with the snippets below. MT Code ships it built in and attaches it to every thread.
claude mcp add munim-computer-use -- /usr/local/bin/munim-computer-use[mcp_servers.munim-computer-use]
command = "/usr/local/bin/munim-computer-use"{ "mcpServers": { "munim-computer-use": { "command": "/usr/local/bin/munim-computer-use" } } }Give your agent a desktop
Source, build steps and the full tool reference are on GitHub.