About this project

# open-computer-use `open-computer-use` is an open-source `Computer Use` service wrapped as `MCP` (Model Context Protocol). Any AI agent or MCP client can use it to run Computer Use on macOS, Linux, and Windows. This project was inspired by OpenAI's [Codex Computer Use](https://openai.com/index/codex-for-almost-everything/). It demonstrated that non-intrusive CUA (Computer Use Agent) can be built on top of Accessibility APIs, so this project provides an open-source implementation. ## Demos - **Codex App and Codex CLI**: Used as Computer Use in Codex App and Codex CLI, matching the official experience. - **Gemini CLI**: Connects to `open-computer-use` through MCP and runs full Computer Use actions. - **Linux**: Runs on Linux. ## Quick Start ```bash npm i -g open-computer-use ``` The npm package also exposes `ocu` as the short CLI alias. > **Important**: The macOS runtime requires macOS 14.0 or later. **On macOS, run it once and grant `Accessibility` and `Screen Recording`. Windows and Linux do not need this step.** ```bash open-computer-use # or ocu ``` Before using it, install it into your agent: ```bash # Install into Codex by writing to ~/.codex/config.toml open-computer-use install-codex-mcp ``` Or add it to your own client manually: ```json { "mcpServers": { "open-computer-use": { "command": "open-computer-use", "args": ["mcp"] } } } ``` ## Skill Install the skill directly: ```bash # Install for Codex npx skills add iFurySt/open-codex-computer-use -g -a codex --skill open-computer-use -y npx skills ls -g -a codex | rg 'open-computer-use' ``` Install for Claude Code: ```bash npx skills add iFurySt/open-codex-computer-use -g -a claude-code --skill open-computer-use -y ``` Update an existing global install, including the Codex install created above: ```bash npx skills update open-computer-use -g -y ``` You can also manually download and install the [`open-computer-use` skill](./skills/open-computer-use). ## More Commands Besides the MCP JSON config above, you can also use the built-in commands: ```bash # Install into Codex by writing to ~/.codex/config.toml open-computer-use install-codex-mcp ocu install-codex-mcp # Install as a Codex plugin, mainly for Codex App open-computer-use install-codex-plugin # Install into Claude Code by writing to ~/.claude.json open-computer-use install-claude-mcp # Install into Gemini CLI for the current project by writing to ./.gemini/settings.json open-computer-use install-gemini-mcp # Install into Gemini CLI user config instead open-computer-use install-gemini-mcp --scope user # Install into opencode by writing to ~/.config/opencode/opencode.json (or the active config file) open-computer-use install-opencode-mcp # Install through DeepSeek Harness's generic MCP compatibility path open-computer-use install-dsh-mcp ./scripts/install-dsh-mcp.sh --profile web --no-hook # Call a single Computer Use tool and print the MCP-style JSON result open-computer-use call list_apps ocu call list_apps open-computer-use call get_app_state --args '{"app":"TextEdit"}' # Inspect code-first runtime availability ocu capabilities ocu capabilities --json # Run one JavaScript evaluation, from an argument, stdin, or a file ocu js 'var apps = await cua.listApps({ emit: false }); nodeRepl.write(apps)' printf '%s' 'nodeRepl.write(6 * 7)' | ocu js - ocu js --file ./automation.mjs # Keep JavaScript and cua bindings for the current terminal session ocu repl # Run a sequence in one process so element_index state can be reused open-computer-use call --calls '[{"tool":"get_app_state","args":{"app":"TextEdit"}},{"tool":"press_key","args":{"app":"TextEdit","key":"Return"}}]' open-computer-use call --calls-file examples/textedit-overlay-seq.json --sleep 0.5 # Check permissions; onboarding only opens when something is missing open-computer-use doctor # Run local validation from a source checkout make smoke OPEN_COMPUTER_USE_STRESS_LOOPS=20 make stress make agent-smoke make agent-smoke SCENARIO=fixture-full node ./scripts/run-agent-smoke-tests.mjs --agents=claude,codex --command=open-computer-use node ./scripts/run-agent-smoke-tests.mjs --scenario=fixture --agents=claude,codex --command=open-computer-use node ./scripts/run-agent-smoke-tests.mjs --scenario=fixture-full --agents=claude,codex --command=open-computer-use OPEN_COMPUTER_USE_HERMES_PROVIDER=anthropic OPEN_COMPUTER_USE_HERMES_MODEL=claude-opus-4-20250514 make agent-smoke AGENTS=hermes SCENARIO=fixture-full node ./scripts/run-agent-smoke-tests.mjs --agents=hermes --hermes-provider=anthropic --hermes-model=claude-opus-4-20250514 node ./scripts/run-agent-smoke-tests.mjs --scenario=fixture --agents=hermes --hermes-provider=anthropic --hermes-model=claude-opus-4-20250514 node ./scripts/run-agent-smoke-tests.mjs --scenario=fixture-full --agents=hermes --hermes-provider=anthropic --hermes-model=claude-opus-4-20250514 --hermes-max-turns=12 # Show help open-computer-use -h ocu -h ``` `ocu js` closes its JavaScript Worker and native MCP child after one evaluation. `ocu repl` keeps them for the current terminal session until `.exit`, Ctrl-D, or termination; `.reset` clears its bindings. On macOS, the separate hidden `Open Computer Use.app` permission agent may remain resident so later commands reuse the same permission identity. `ocu mcp` continues to expose the native nine-tool compatibility surface. The npm launcher itself currently requires Node.js 18 or newer. Its help always lists `js` / `repl`, while `ocu capabilities --json` reports whether Node, the REPL adapter/kernel, and the native runtime are available. Once started, it reuses the current Node executable instead of looking up another `node` on PATH. ## Cursor Motion Cursor Motion is an open-source cursor motion system for macOS, based on public information shared by members of the Software.Inc team. You can download the app from the [Releases page](https://github.com/iFurySt/open-codex-computer-use/releases). ## Star History See the [Star History Chart](https://www.star-history.com/?repos=iFurySt%2Fopen-codex-computer-use&type=date&legend=top-left) for the project's popularity over time. ## License [MIT](./LICENSE).