open-computer-use — Claude Code skill: screen and GUI automation
A skill that gives agents access to the screen, mouse, and keyboard via CLI or MCP server. Works on macOS, Linux, and Windows to solve tasks requiring graphical interface interaction.
npx skills add iFurySt/open-computer-use --skill open-computer-use -a claude-codeWhat open-computer-use does
Open Computer Use is a local tool for desktop control. An agent can capture the screen, find UI elements, click, type text, scroll, and fill fields. On macOS, it adds accessibility tree search without screenshots and precise text selection in editors.
Setup is one npx skills add command. macOS requires macOS 14.0 or later; before first use, run open-computer-use doctor and grant accessibility and screen recording permissions. Other platforms run without setup.
Two modes are available: direct CLI commands like open-computer-use call get_app_state for single operations, or an MCP server for agents that support stdio services. For complex scenarios, combine multiple actions in one process call to reuse element indexes.
What it helps with
- automate routine tasks in applications through screen and pointer
- read UI state and locate elements in any window
- fill forms or send data to graphical applications
- click links, buttons, and fields across platforms without API access
Example prompts for the agent
- List open applications: `open-computer-use call list_apps`
- Click a button in TextEdit: `open-computer-use call click --args '{"app":"TextEdit","element_index":"0"}'`
- Type text into the active window: `open-computer-use call type_text --args '{"app":"TextEdit","text":"Hello"}'`
How to install open-computer-use
1Skills CLI (Vercel)
npx skills add iFurySt/open-computer-use --skill open-computer-use -a claude-code2Manually: put the files in place
~/.claude/skills/open-computer-use/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/open-computer-use/
1Skills CLI (Vercel)
npx skills add iFurySt/open-computer-use --skill open-computer-use -a codex2Manually: put the files in place
.agents/skills/open-computer-use/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add iFurySt/open-computer-use --skill open-computer-use -a cursor2Manually: put the files in place
.cursor/skills/open-computer-use/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install iFurySt/open-computer-use open-computer-use2Manually: put the files in place
.github/skills/open-computer-use/SKILL.md1Skills CLI (Vercel)
npx skills add iFurySt/open-computer-use --skill open-computer-use -a gemini-cli2Platform CLI
gemini skills install https://github.com/iFurySt/open-computer-use --path skills/open-computer-useManually: put the files in place
.devin/skills/open-computer-use/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add iFurySt/open-computer-use --skill open-computer-use -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Similar
Questions about open-computer-use
How do I install open-computer-use in Claude Code?
Run npx skills add iFurySt/open-computer-use --skill open-computer-use -a claude-code. The skill will load into ~/.claude/skills/open-computer-use/SKILL.md and is ready to use.
What does open-computer-use do?
It gives agents access to the screen and mouse and keyboard control, reads text from applications, and clicks UI elements. Works via CLI or as an MCP server.
What is the minimum macOS version required?
macOS 14.0 or later. Windows and Linux have different requirements — no version restrictions. Check your version with sw_vers -productVersion.
Source text
SKILL.md · MIT
---
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`.
The macOS runtime additionally implements `select_text`, which selects the given text inside a text
element or places the text cursor before / after it (`selection`: `text`, `cursor_before`,
`cursor_after`). Pass `text` exactly as it appears in the accessibility tree, plus `prefix` /
`suffix` when it is not unique; an ambiguous target fails closed instead of silently selecting the
first match. JavaScript exposes `app.selectText(elementIndex, text, options?)`. Unreadable or mismatched range verification throws, including when full action read-back is off. Windows and Linux runtimes do not implement this tool yet.
macOS additionally exposes `query`: a targeted accessibility lookup that finds
controls by text and/or role without rendering a tree or taking a screenshot.
## Core Workflow
1. On macOS, run `sw_vers -productVersion` before invoking the CLI and require macOS 14.0 or later. On older versions, explain that the runtime cannot launch; do not recommend `doctor` or permission changes as a fix for binary incompatibility.
2. Check the CLI is installed with `open-computer-use -h` or `ocu -h`. If installation or setup is missing, read [references/installation.md](references/installation.md).
3. On supported macOS versions, run `open-computer-use doctor` before the first real GUI task. If permissions are missing, ask the user to approve Accessibility and Screen Recording in the onboarding UI.
4. Inspect available apps before acting: `open-computer-use call list_apps`.
5. Capture current UI state with `open-computer-use call get_app_state --args '{"app":"TextEdit"}'`. The default state is usually enough for UI operation.
6. When the task needs longer semantic text, such as chat history, email bodies, document text, or long form content, call `get_app_state` with `text_limit: 1000` or `text_limit: "max"`.
7. When visible long pages or lists appear incomplete even after scrolling, call `get_app_state` with a larger `max_tree_nodes` or `max_tree_depth`.
8. Prefer element-targeted actions using `element_index` from the latest `get_app_state` result.
9. For multi-step CLI work, use `open-computer-use call --calls '<json-array>'` so one process can reuse the latest element index mapping.
10. For agent runtimes that support local MCP servers, configure `open-computer-use mcp` or `ocu mcp` and call the exposed Computer Use tools directly. Read [references/usage.md](references/usage.md).
11. For direct code-first orchestration, run `ocu capabilities` and then use one-shot `ocu js` or persistent `ocu repl`. Read [references/usage.md](references/usage.md).
12. If communication, permission, or desktop-session access fails, read [references/troubleshooting.md](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` / `ocu` CLI or an explicit MCP config.
- Use indexes returned by `get_app_state` or macOS `query` in the same native session; do not guess indexes across sessions or after large UI changes.
- Prefer semantic actions and `set_value` for editable controls. Use coordinate `click`, `scroll`, and `drag` only when the element tree does not expose a safer target.
- On macOS, do not enable `OPEN_COMPUTER_USE_ALLOW_GLOBAL_POINTER_FALLBACKS=1` unless the user explicitly requested `click_method: "global"`, a `drag` that 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 it `drag` reports `Drag delivered via app_post` and those operations have no effect; see `references/usage.md` for 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
```sh
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:
```sh
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:
```toml
[mcp_servers.open_computer_use]
command = "open-computer-use"
args = ["mcp"]
```
Read [references/usage.md](references/usage.md) for JSON config examples, direct tool-call patterns, and platform notes.
## References
- [references/installation.md](references/installation.md): one-time CLI install, agent MCP install commands, and macOS permissions.
- [references/usage.md](references/usage.md): MCP config, direct CLI calls, sequencing, and platform behavior.
- [references/troubleshooting.md](references/troubleshooting.md): permission, desktop-session, app discovery, and action failures.
© iFurySt · MIT · iFurySt/open-computer-use