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).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.