Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add iFurySt/open-computer-use --skill open-computer-use -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/open-computer-use/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/open-computer-use/

Similar

write-issue tldraw Enforces GitHub issue formatting and triage standards based on the tldraw repository. It helps draft clear titles, structure descriptions, and manage labels. Claude Code CX Codex Cursor +1 405installs architect jsmastery-pro Structures architectural discovery and writes build specifications into docs/specs/. It helps choose tech stacks and design features before writing any code. Claude Code CX Codex Cursor +1 6,800installs data-manager phaserjs Guides an agent through Phaser 4 DataManager for object, scene, and game state, including reactions to data changes. Claude Code CX Codex Cursor +1 752installs arbor K-Dense-AI Runs an autonomous optimization loop using hypothesis trees for models, code, and harnesses. Useful when organizing dozens of experimental trials without losing past findings. Claude Code CX Codex Cursor +1 1,200installs pi-agent K-Dense-AI Helps you install and configure Pi, then build extensions, integrations, and terminal UI components around it. Claude Code CX Codex Cursor +1 1,200installs mantis-threat-model official google Turns the Mantis knowledge base into a project threat model: trust boundaries, entry points, attacker profiles. Useful once the architecture is written down but the threat model is not. Claude Code CX Codex Cursor +1 1,800installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs

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

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor