open-computer-use
Lets AI agents see and control desktop applications through the accessibility layer, enabling clicking, typing, scrolling, dragging, and window/app management across macOS, Windows, and Linux entirely on the local machine.
README
<p align="center"> <img src="./assets/logo/open-computer-use-256.png" width="144" alt="open-computer-use"> </p>
open-computer-use
A local MCP server that gives AI agents eyes and hands on your desktop. Agents can see an app's interface, click, type, scroll, and drag — through the accessibility layer, without taking over your real mouse and keyboard. Runs entirely on your machine, on macOS, Windows, and Linux.
The tools
Nine core tools, identical across all three platforms:
| Tool | What it does |
|---|---|
list_apps |
List running and recently used applications. |
get_app_state |
Read an app's accessibility tree and screenshot. |
click |
Click by element_index or screenshot coordinates. |
perform_secondary_action |
Invoke an element's own secondary action. |
scroll |
Scroll an element by pages, or a window by pixel deltas. |
drag |
Drag between two coordinates. |
type_text |
Type text, Unicode-safe, background-first. |
press_key |
Press a key or chord (ctrl+s, return, page_up…). |
set_value |
Set the value of a settable control directly. |
Five additional window-level tools — list_windows, get_window, get_window_state, launch_app, activate_window — follow the newer window2 API and are currently available on Windows (macOS and Linux in progress).
Quick start
npm i -g @opensymph/open-computer-use
ocu doctor # verify the install; macOS: prompts for permissions
ocu call list_apps
macOS 14+ needs Accessibility and Screen Recording granted once. Windows and Linux work out of the box in a signed-in desktop session (Linux desktops need AT-SPI2, which GNOME and friends ship by default).
No npm? Grab the tarball from GitHub Releases and run npm i -g <tarball> — or install it into ZCode as a plugin (below) and it will use whatever local runtime it finds.
Connect your agent
ocu install-codex-mcp # Codex CLI & Codex App
ocu install-codex-plugin # Codex App, plugin form
ocu install-claude-mcp # Claude Code
ocu install-gemini-mcp # Gemini CLI (--scope user for global)
ocu install-opencode-mcp # opencode
Any other MCP client — add it manually:
{
"mcpServers": {
"open-computer-use": { "command": "open-computer-use", "args": ["mcp"] }
}
}
ZCode
This repo ships as a ZCode plugin — one install gives you the skill and an auto-connected MCP server:
-
Install the runtime once (the plugin falls back to it when no local build exists):
npm i -g @opensymph/open-computer-use -
In ZCode, open Settings → Plugin Management → Discover and click +.
-
Add this repository — the GitHub URL
opensymph/open-computer-use, or a local checkout directory. -
Find Open Computer Use in the list and click Get.
-
Start a new session. Check Settings → MCP shows
open-computer-useas connected, then just ask: "list the windows on my screen".
To remove it later: Installed tab → Open Computer Use → uninstall.
Agent skill — installable guidance that teaches agents to use these tools well:
npx skills add opensymph/open-computer-use -g -a claude-code --skill open-computer-use -y
Why this one
- Non-intrusive by design. Prefer the accessibility API over synthetic input; your real pointer, focus, and foreground app stay put unless you explicitly opt into global input.
- Three platforms, one contract. The same tool names, arguments, and results on every OS — agents don't need per-platform branching.
- A cursor you can watch. On macOS, actions drive a visible software cursor, so you can follow what the agent is doing.
- Scriptable without a client.
ocu callruns any tool from your shell and prints MCP-style JSON;--callschains sequences in one process. - Guardrails built in. Password managers are always refused. Launching apps, stealing focus, and global input injection each sit behind an explicit environment-variable gate.
- Signed where it matters. The macOS runtime is Developer ID signed, so granted permissions survive version upgrades.
Platform status
| Platform | Runtime | Notes |
|---|---|---|
| macOS | Swift | Visual cursor, permission onboarding, sky_click background clicks. |
| Windows | Go, single exe | UI Automation + Win32, process-isolated operations, full window2 API. |
| Linux | Go, single binary | Native AT-SPI2 over D-Bus, zero runtime dependencies. |
Documentation
- Architecture — how the three runtimes work
- Skill references — usage, installation, troubleshooting
- Security policy and third-party notices
- Contributing
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.