open-computer-use
ifuryst/open-codex-computer-use
Platform-neutral CLI and MCP server for GUI automation across macOS, Linux, and Windows.
What is open-computer-use?
Open Computer Use is an open-source Computer Use MCP server and CLI that exposes desktop automation tools like clicking, typing, scrolling, and app state inspection. Use it when an agent needs to interact with graphical applications or verify system state across macOS 14.0+, Linux, or Windows.
- List and inspect running applications and their UI state
- Click, type, scroll, and drag within application windows
- Capture full or partial UI trees with configurable text and node limits
- Perform secondary actions and set control values programmatically
- Run as a local stdio MCP server or standalone CLI with direct tool calls
- Support multi-step sequences in a single process to reuse element indexes
How to install open-computer-use
npx skills add https://github.com/ifuryst/open-codex-computer-use --skill open-computer-use- macOS 14.0 or later (for macOS); Linux or Windows with a logged-in desktop session
- Installation via npm: `npx skills add https://github.com/ifuryst/open-codex-computer-use --skill open-computer-use`
- On macOS, Accessibility and Screen Recording permissions must be approved in system settings
How to use open-computer-use
- 1.Verify the CLI is installed by running `open-computer-use -h` or `ocu -h`
- 2.On macOS, run `open-computer-use doctor` and approve any permission prompts before the first GUI task
- 3.List available apps with `open-computer-use call list_apps`
- 4.Capture the current UI state of a target app using `open-computer-use call get_app_state --args '{"app":"AppName"}'`
- 5.Perform actions by referencing element indexes from the latest state: `open-computer-use call click --args '{"app":"AppName","element_index":"0"}'`
- 6.For sequences, use `open-computer-use call --calls '[...]'` to reuse element indexes across multiple tool calls in one process
- 7.For MCP integration, configure `open-computer-use mcp` in your agent's MCP server config and call Computer Use tools directly
Use cases
- Automating repetitive GUI tasks like form filling or data entry across desktop applications
- Capturing and analyzing application state for testing or verification workflows
- Orchestrating complex multi-app workflows where agents need to coordinate clicks and text input
- Debugging desktop application behavior by inspecting UI trees and app state
- Running GUI automation in CI/CD or headless environments on Linux or Windows
- AI agents and coding assistants that need to control desktop GUIs
- Developers building automation workflows across multiple platforms
- QA and testing teams automating GUI-based test scenarios
- System administrators automating cross-platform desktop tasks
open-computer-use FAQ
macOS 14.0 or later. Older versions cannot run the binary; permission changes or `doctor` will not fix binary incompatibility.
Yes. Linux and Windows use their own platform runtimes and do not have a macOS version requirement. Both require a logged-in desktop session.
Run `open-computer-use doctor` and approve Accessibility and Screen Recording in the system settings onboarding UI.
Either run CLI commands directly (e.g., `open-computer-use call list_apps`), configure it as an MCP server in your agent's config, or use `ocu js` / `ocu repl` for direct code orchestration.
Always prefer element_index from the latest `get_app_state` result. Use coordinate clicks only when the element tree does not expose a safer target.
Full instructions (SKILL.md)
Source of truth, from ifuryst/open-codex-computer-use.
name: open-computer-use description: Platform-neutral guidance for using Open Computer Use, the open-source Computer Use MCP server and CLI for macOS, Linux, and Windows. Use when an agent needs to install, verify, troubleshoot, configure, or operate Open Computer Use through its native CLI, stdio MCP server, or direct Computer Use tool calls.
Open Computer Use
Overview
Open Computer Use exposes Computer Use as a local CLI and stdio MCP server. It is not Codex.app-specific; adapt the commands and MCP config to the agent runtime you are operating in.
The macOS runtime requires macOS 14.0 or later. Windows and Linux use their own platform runtimes and are not subject to this macOS minimum.
It supports the same core tool surface across macOS, Linux, and Windows:
list_apps, get_app_state, click, perform_secondary_action, scroll,
drag, type_text, press_key, and set_value.
Core Workflow
- On macOS, run
sw_vers -productVersionbefore invoking the CLI and require macOS 14.0 or later. On older versions, explain that the runtime cannot launch; do not recommenddoctoror permission changes as a fix for binary incompatibility. - Check the CLI is installed with
open-computer-use -horocu -h. If installation or setup is missing, read references/installation.md. - On supported macOS versions, run
open-computer-use doctorbefore the first real GUI task. If permissions are missing, ask the user to approve Accessibility and Screen Recording in the onboarding UI. - Inspect available apps before acting:
open-computer-use call list_apps. - Capture current UI state with
open-computer-use call get_app_state --args '{"app":"TextEdit"}'. The default state is usually enough for UI operation. - When the task needs longer semantic text, such as chat history, email bodies, document text, or long form content, call
get_app_statewithtext_limit: 1000ortext_limit: "max". - When visible long pages or lists appear incomplete even after scrolling, call
get_app_statewith a largermax_tree_nodesormax_tree_depth. - Prefer element-targeted actions using
element_indexfrom the latestget_app_stateresult. - For multi-step CLI work, use
open-computer-use call --calls '<json-array>'so one process can reuse the latest element index mapping. - For agent runtimes that support local MCP servers, configure
open-computer-use mcporocu mcpand call the exposed Computer Use tools directly. Read references/usage.md. - For direct code-first orchestration, run
ocu capabilitiesand then use one-shotocu jsor persistentocu repl. Read references/usage.md. - If communication, permission, or desktop-session access fails, read references/troubleshooting.md.
Operating Rules
- Treat the target desktop as the user's real session. Do not inspect password managers, unrelated private content, or sensitive apps unless the user explicitly asked for that task.
- Ask before sending, deleting, purchasing, approving, uploading, or making other externally visible changes.
- Do not assume Codex.app plugin helpers are available. Use the installed
open-computer-use/ocuCLI or an explicit MCP config. - Always run
get_app_statebefore usingelement_index; do not guess indexes across sessions or after large UI changes. - Prefer semantic actions and
set_valuefor editable controls. Use coordinateclick,scroll, anddragonly when the element tree does not expose a safer target. - On macOS, do not enable
OPEN_COMPUTER_USE_ALLOW_GLOBAL_POINTER_FALLBACKS=1unless the user explicitly requestedclick_method: "global", adragthat must drive a window-server drag session (window move, drag-select text, Finder drag-and-drop), or other diagnostic behavior that may move the real pointer. Without itdragreportsDrag delivered via app_postand those operations have no effect; seereferences/usage.mdfor alternatives. - On Windows and Linux, confirm the command is running inside the logged-in desktop session before assuming GUI automation is available.
Common CLI Actions
open-computer-use -h
ocu -h
ocu capabilities --json
ocu js 'nodeRepl.write(6 * 7)'
ocu repl
open-computer-use doctor
open-computer-use call list_apps
ocu call list_apps
open-computer-use call get_app_state --args '{"app":"TextEdit"}'
open-computer-use call get_app_state --args '{"app":"TextEdit","text_limit":1000}'
open-computer-use call get_app_state --args '{"app":"TextEdit","text_limit":"max"}'
open-computer-use call get_app_state --args '{"app":"Google Chrome","max_tree_nodes":3000,"max_tree_depth":96}'
open-computer-use call click --args '{"app":"TextEdit","element_index":"0"}'
open-computer-use call type_text --args '{"app":"TextEdit","text":"Hello from Open Computer Use"}'
For a short sequence that reuses state in one process:
open-computer-use call --calls '[
{"tool":"get_app_state","args":{"app":"TextEdit"}},
{"tool":"press_key","args":{"app":"TextEdit","key":"Return"}}
]'
MCP Usage
For runtimes that can launch local MCP servers over stdio, use:
[mcp_servers.open_computer_use]
command = "open-computer-use"
args = ["mcp"]
Read references/usage.md for JSON config examples, direct tool-call patterns, and platform notes.
References
- references/installation.md: one-time CLI install, agent MCP install commands, and macOS permissions.
- references/usage.md: MCP config, direct CLI calls, sequencing, and platform behavior.
- references/troubleshooting.md: permission, desktop-session, app discovery, and action failures.
Related skills
More from ifuryst/open-codex-computer-use and the wider catalog.

powerpoint
Create, design, and analyze PowerPoint presentations with precise layout control and design principles.

word
|-
iii-architecture-patterns
Agent skill from iii-hq/iii.
iii-core-primitives
Agent skill from iii-hq/iii.
iii-engine-config
Configure iii engine workers, adapters, queues, ports, and environment variables via YAML.
iii-error-handling
Agent skill from iii-hq/iii.