1. Conduid
  2. Developer Tools
  3. Open Computer Use
MCP server · Developer Tools

Open Computer Use

A local MCP server that gives AI agents eyes and hands on your desktop — macOS, Windows & Linux, accessibility-first, fully local.

Unclaimed MIT devtools
39Low

Scored 8 days ago · breakdown

About Open Computer Use

Open Computer Use is an MCP server published by opensymph in the Developer Tools category: a local MCP server that gives AI agents eyes and hands on your desktop — macOS, Windows & Linux, accessibility-first, fully local.

The repository has 15 stars and 3 forks, with the last commit 9 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/opensymph/open-computer-use

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Open Computer Use

Powered by Claude · Grounded in docs

I know everything about Open Computer Use. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 6 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.

1 check has not been run yet.

Releases

v1.3.0v1.3.0 · 17 Oct 2026What's Changed New `capture_display` tool for full-screen capture, plus `doctor --no-ui` for silent permission probing. macOS App distribution: CI builds, signs (Developer ID), notarizes and publishes a universal `Open Computer Use.app`…
v1.2.0v1.2.0 · 26 Aug 2026What's Changed Record polish now defaults to a clean-room frame compositor (idle remap, smart zoom, lens warp, motion blur, cursor ghost, keystroke chips) with yellow click ripples on by default, plus API↔display coordinate scaling, richer…
v1.1.0v1.1.0 · 24 Aug 2026What's Changed Display-level desktop commands on every platform: Windows and macOS now ship the same whole-desktop `screenshot`, `cursor-position`, `input`, and `record` CLI commands the Linux runtime introduced, with matching flags and…
v1.0.4v1.0.4 · 23 Aug 2026What's Changed Update the copyright holder to opensymph. Full Changelog: https://github.com/opensymph/open-computer-use/compare/v1.0.3...v1.0.4
v1.0.3v1.0.3 · 23 Aug 2026What's Changed Package and plugin developer metadata now points at the opensymm project. Full Changelog: https://github.com/opensymph/open-computer-use/compare/v1.0.2...v1.0.3

README

open-computer-use

npm Release 简体中文

A local MCP server that gives AI agents eyes and hands on your desktop. Agents can see an app's interface, click, type, scroll, and drag — through the accessibility layer, without taking over your real mouse and keyboard. Runs entirely on your machine, on macOS, Windows, and Linux.

The tools

Nine core tools, identical across all three platforms:

Tool What it does
list_apps List running and recently used applications.
get_app_state Read an app's accessibility tree and screenshot.
click Click by element_index or screenshot coordinates.
perform_secondary_action Invoke an element's own secondary action.
scroll Scroll an element by pages, or a window by pixel deltas.
drag Drag between two coordinates.
type_text Type text, Unicode-safe, background-first.
press_key Press a key or chord (ctrl+s, return, page_up…).
set_value Set the value of a settable control directly.

Five additional window-level tools — list_windows, get_window, get_window_state, launch_app, activate_window — follow the newer window2 API and are available on Windows and macOS (Linux in progress). On macOS the window id is a CGWindowID, and the action tools accept the same optional window argument plus screenshotId for coordinate actions as on Windows.

macOS adds one display-level tool, capture_display: it captures one complete display — desktop, visible windows, menu bar, Dock, visible popovers — as a full-resolution PNG, without activating, unhiding, or focusing anything. With no display_id it captures the main display; the result's available_displays lists the other selectable IDs. It needs the Screen Recording permission, returns typed JSON errors (permission_missing, display_not_found, display_changed, capture_timeout, capture_failed, image_too_large), and its metadata maps PNG pixels to Quartz global display points — the image pixel size can be larger than the display point size on Retina displays. Unlike get_app_state/window screenshots it never restores hidden or minimized windows to obtain pixels.

Quick start

npm i -g @opensymph/open-computer-use
ocu doctor        # verify the install; macOS: prompts for permissions
ocu call list_apps

macOS 14+ needs Accessibility and Screen Recording granted once. Windows and Linux work out of the box in a signed-in desktop session (Linux desktops need AT-SPI2, which GNOME and friends ship by default).

No npm? Grab the tarball from GitHub Releases and run npm i -g <tarball> — or install it into ZCode as a plugin (below) and it will use whatever local runtime it finds.

Connect your agent

ocu install-codex-mcp      # Codex CLI & Codex App
ocu install-codex-plugin   # Codex App, plugin form
ocu install-claude-mcp     # Claude Code
ocu install-gemini-mcp     # Gemini CLI (--scope user for global)
ocu install-opencode-mcp   # opencode

Any other MCP client — add it manually:

{
  "mcpServers": {
    "open-computer-use": { "command": "open-computer-use", "args": ["mcp"] }
  }
}

ZCode

This repo ships as a ZCode plugin — one install gives you the skill and an auto-connected MCP server:

  1. Install the runtime once (the plugin falls back to it when no local build exists):

    npm i -g @opensymph/open-computer-use
    
  2. In ZCode, open Settings → Plugin Management → Discover and click +.

  3. Add this repository — the GitHub URL opensymph/open-computer-use, or a local checkout directory.

  4. Find Open Computer Use in the list and click Get.

  5. Start a new session. Check Settings → MCP shows open-computer-use as connected, then just ask: "list the windows on my screen".

To remove it later: Installed tab → Open Computer Use → uninstall.

Agent skill — installable guidance that teaches agents to use these tools well:

npx skills add opensymph/open-computer-use -g -a claude-code --skill open-computer-use -y

Why this one

  • Non-intrusive by design. Prefer the accessibility API over synthetic input; your real pointer, focus, and foreground app stay put unless you explicitly opt into global input.
  • Three platforms, one contract. The same tool names, arguments, and results on every OS — agents don't need per-platform branching.
  • A cursor you can watch. On macOS, actions drive a visible software cursor, so you can follow what the agent is doing.
  • Scriptable without a client. ocu call runs any tool from your shell and prints MCP-style JSON; --calls chains sequences in one process.
  • Guardrails built in. Password managers are always refused. Launching apps, stealing focus, and global input injection each sit behind an explicit environment-variable gate.
  • Signed where it matters. The macOS runtime is Developer ID signed, so granted permissions survive version upgrades.

Platform status

Platform Runtime Notes
macOS Swift Visual cursor, permission onboarding, sky_click background clicks, full window2 API; display-level desktop commands (see below).
Windows Go, single exe UI Automation + Win32, process-isolated operations, full window2 API; display-level desktop commands (see below).
Linux Go, single binary Native AT-SPI2 over D-Bus; display-level X11 commands (see below).

Display-level desktop commands (all platforms)

Every runtime ships the same whole-desktop CLI commands that mirror the classic xdotool / ffmpeg desktop stack — same command names, flags, and JSON output on macOS, Windows, and Linux — handy for headless VNC desktops or full-screen observation where you want to capture or drive the entire screen rather than a single app:

open-computer-use screenshot --output shot.png   # whole-desktop PNG (base64 to stdout without --output)
open-computer-use cursor-position                # pointer x/y + desktop size (JSON, identical shape)
open-computer-use record start --output rec.mp4 --fps 60 --quality demo --polish
open-computer-use record stop --save-as demo-take   # also writes demo-take.polished.mp4 when --polish
open-computer-use record polish --input demo-take.mp4  # compositor: zoom/lens/blur/cursor/keys (or --engine ffmpeg / --ripples)
open-computer-use record discard                 # stop + delete (Cursor RecordScreen DISCARD parity)
open-computer-use record status

screenshot and cursor-position are read-only. Per-platform notes:

Linux Windows macOS
screenshot pure-Go X11 read, --display :N GDI read of the whole virtual desktop per-display capture composited over the desktop bounds (Screen Recording permission)
cursor-position X11 QueryPointer GetCursorPos + virtual screen CGEvent pointer in top-left desktop coordinates
input backend xdotool (needs PATH) SendInput CGEvent to the HID tap (Accessibility permission)
input gate OPEN_COMPUTER_USE_ALLOW_GLOBAL_POINTER_FALLBACKS=1 OPEN_COMPUTER_USE_WINDOWS_ALLOW_FOREGROUND_INPUT=1 OPEN_COMPUTER_USE_MACOS_ALLOW_FOREGROUND_INPUT=1
record backend ffmpeg x11grab (needs PATH) ffmpeg gdigrab (needs PATH) prefers ffmpeg avfoundation when on PATH; falls back to /usr/sbin/screencapture -v
record quality --quality demo (default) / draft / proxy; --fps, --draw-mouse, discard, stop --save-as same same flags; ffmpeg path honors them, screencapture fallback ignores encode knobs
record polish clean-room frame compositor aligned with polished-renderer (idle remap → zoom → lens warp → camera motion blur → cursor depress/motion-blur → keystroke chips). --engine ffmpeg legacy filter path; optional --ripples. Logs display input into <stem>.events.json. same macOS uses ffmpeg+ASS path; accepts --engine for CLI parity

The Linux commands accept --display (defaults $DISPLAY, then :0; a VNC/AnyOS desktop is usually :1); Windows and macOS operate on the whole desktop and have no --display. Global synthetic input moves the real pointer/keyboard, so each platform gates it behind its own opt-in flag (default off):

OPEN_COMPUTER_USE_ALLOW_GLOBAL_POINTER_FALLBACKS=1 open-computer-use input click --x 960 --y 600   # Linux
OPEN_COMPUTER_USE_WINDOWS_ALLOW_FOREGROUND_INPUT=1 open-computer-use.exe input type "hello"       # Windows
OPEN_COMPUTER_USE_MACOS_ALLOW_FOREGROUND_INPUT=1 open-computer-use input key ctrl+s                # macOS

These commands are CLI-only: they stay outside the shared cross-platform MCP tool surface (macOS separately exposes the full-display capture as the capture_display MCP tool described above).

Documentation

License

MIT

README fetched from the repository 6 days ago. The original is authoritative.

Questions

About Open Computer Use

How do I install Open Computer Use?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Open Computer Use safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 5 of the 5 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Open Computer Use still maintained?

Yes — the latest release is v1.3.0 (17 Oct 2026), and the last commit was 9 days ago. The repository has 15 stars and 5 open issues.