Skip to content

arc-cua

macOS computer-use package: a background app driver for any agent, plus a loop where Jev picks each UI action for a bounded subtask.

Projectbeta

Overview

arc-cua ships two tools. arc-driver is a macOS driver for computer-use agents: it reads an app's window, runs menu commands and acts on controls in the background, leaving the user's pointer, front app and windows alone, checking each action against the app's current state and waiting for it to settle. It works with minimized windows and hidden apps, and does not use any decision model; it can be used as MCP tools in Claude Code or from Python.

arc-cua is the decision-model loop. A planner (for example a larger agent) hands off a bounded desktop subtask, and Jev, accessed through TypeSafe, selects the next UI operation from a dynamically built action space given structured desktop state (elements, roles, values). It can only pick valid targets and operations, and one call can resolve the operation and its parameters in parallel. It needs an API key.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich UI element should be targeted next?—
ChoiceWhich operation (click, type, etc.) should be performed?—

How it works

  1. Planner hands a bounded subtask to arc-cua
  2. Driver observes the app window as structured state
  3. Jev picks target and operation from the allowed action space
  4. Driver executes and re-observes until the subtask is done

Strengths

  • Actions restricted to observed targets
  • Background operation does not disturb the user
  • Driver usable without any model

Caveats

  • macOS only
  • Decision loop needs a TypeSafe key

Getting started

claude mcp add arc-cua -- uvx --from 'arc-cua[macos]' arc-cua mcp

At a glance

Type
Project
Status
beta
Language
Python
Runtime
MCP server / Python library (macOS)
Has code
yes

Use cases and integrations

How curated lists describe it

  • Lets a planner hand bounded desktop subtasks to a decision model that runs the UI loop, with a lean macOS driver usable on its own.

    MrJev/awesome-jev

Frequently asked questions

Do I need Jev to use the driver?

No, arc-driver is standalone; only the arc-cua loop uses Jev.

What does Jev decide?

The next UI target and operation from a dynamically built action space.

Does it take over my mouse?

No, it acts in the background.

Related projects

  • Windows MCP server and CLI where Jev observes windows and chooses controls so agents can hand off whole desktop tasks.

    MCP serverbetaPython
  • Accessibility-first macOS computer-use MCP server and CLI, with optional Jev guards on targets and inputs before irreversible actions.

    PluginbetaPython
  • Computer-use MCP server for macOS and Windows that reads the UI tree and uses Jev to find elements, check screens and wait for states.

    MCP serverbetaPython
  • Windows automation and durable research MCP server for Codex and Claude Code where Jev chooses among bounded UI Automation actions.

    MCP serverbeta
  • Codex computer-use skill where Jev picks the next on-screen element, action, completion and risk from text candidates.

    Agent skillprototypeJavaScript
  • Rust MCP server for desktop control via accessibility trees, with an optional decision model (Jev or compatible) for small choices.

    MCP serverproductionRust