open-codex-computer-use
iFurySt · iFurySt/open-codex-computer-use
Dịch vụ MCP mã nguồn mở này cho phép các tác nhân AI thực hiện các thao tác "Computer Use" trên các hệ điều hành macOS, Linux và Windows thông qua các tính năng trợ năng.
👾 Open Computer Use – Thay thế mã nguồn mở cho Codex Computer Use.
Xem trước
Bạn có thể làm gì với nó
- Tự động hóa các tác vụ quản trị trên hệ điều hành của bạn bằng cách sử dụng tác nhân AI.
- Cho phép một tác nhân AI tương tác với các ứng dụng máy tính để bàn và thao tác các yếu tố UI.
- Xây dựng các tác nhân AI có thể thực hiện hành động trên nhiều hệ điều hành, như mở tệp hoặc khởi chạy ứng dụng.
Kiểm tra an toàn
Không thấy dấu hiệu rủi ro trong các file đã quét.
Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.
Trích từ README
open-computer-use
[!TIP] Interested in Browser Use? Check out open-browser-use.
open-computer-use is an open-source Computer Use service wrapped as MCP. 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. It showed that non-intrusive CUA can be built on top of Accessibility, so I decided to build an open-source version.
I started this repo with my harness template, a template for quickly spinning up AI-first projects. It has been one of our most useful workflows lately, especially for nearly 100% AI-generated projects. I also wrote a post about the methodology behind it.
Demos
Codex App and Codex CLI
open-computer-use used as Computer Use in Codex App and Codex CLI, matching the official experience.
Gemini CLI
https://github.com/user-attachments/assets/eacb3b15-f939-46c7-b3b3-6f876977a58d
Gemini CLI connects to open-computer-use through MCP and runs full Computer Use actions.
Linux
https://github.com/user-attachments/assets/e036b1c8-2200-4896-abd4-19225915cf66
open-computer-use running on Linux.
Quick Start
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.
open-computer-use
# or
ocu
Before using it, install it into your agent:
# Install into Codex by writing to ~/.codex/config.toml
open-computer-use install-codex-mcp
Or add it to your own client manually:
{
"mcpServers": {
"open-computer-use": {
"command": "open-computer-use",
"args": ["mcp"]
}
}
}
Skill
Install the skill directly:
# 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:
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:
npx skills update open-computer-use -g -y
You can also manually download and install the
open-computer-use skill.
More
Besides the MCP JSON config above, you can also use the built-in commands:
# 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:
# verifies the server, then writes a profile patch, turn-boundary hook, and skill
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
# Sequence runs sleep 1s between successful operations by default
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
# macOS: query permission JSON without opening onboarding
ocu doctor --json
# 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 u