陽炎窓
Rocuronium

free · open source · Apple silicon

Rocuronium

Your agent drives the Mac. You keep using it.

Let an AI agent read, click and type in your apps. Background input preserves your cursor and focus; a panel shows each step.

Get Rocuronium

Ghost input

Sends clicks and keys through accessibility or per-process events, preserving your cursor and focus.

Verified results

Each action returns confirmed, noEffect or unverifiable. See the checks below.

Status panel

Shows the goal and current step in plain English. Drag it anywhere.

Stops when you intervene

Touch the mouse during a hands-off action and it stops. Your clicks during background checks are attributed to you.

Virtual display

Moves windows to a virtual display for work, then restores them.

Checked plans

Runs multi-step plans with checks between steps and rules for failures.

Local screen recognition

OCR, UI detection and an optional vision model run locally for apps without accessibility support.

On-screen approval

Hold Y to approve, A to approve a work session, or N to decline. Hazardous menu items and shortcuts, including Log Out and Empty Trash, require explicit confirmation.

CLI and MCP

Use the same commands from a shell or as MCP tools.

01 / status panel

Track the current action.

The panel shows the goal, step count and current action. Its status indicates mouse and keyboard use.

Background
Ghost input. Keep working.
Hands off
The agent is using the mouse or keyboard.
Thinking
Between steps.
Done
Shown only when the agent says so.

⌃⌥⇧⎋ stops everything. Only the menu bar resumes.

02 / action results

Check what changed.

Rocuronium reads values back, compares pixels and checks accessibility tree changes. noEffect means the API reported success but nothing changed.

rocuronium click --app Demo --label "Tap Target"
{
  "verdict": "confirmed",
  "tentacle": "accessibility",
  "treeChanges": 1,
  "treeDelta": "value changed: AXStaticText 'clicks: 0' → 'clicks: 1'",
  "cursorMovedByUs": false,
  "focusTakenByUs": false,
  "attribution": "agent"
}
If you click in that app during the check, attribution is "mixed". The agent verifies the result before using it.

How it works

Each action tries these methods in order until one is verified. Most use accessibility.

The menu bar app holds permissions and runs actions. The rocuronium CLI connects over a local socket; rocuronium mcp exposes the same commands to MCP clients.

Accessibilitypress, set value, show menu
cursor and focus untouched
try nextwhen nothing changed
Posted eventsclicks and keys sent
to that one app
opt-inrefused while you’re present
Hardwarethe real mouse and keyboard
“Hands off” in the panel

window isolation

The virtual display

The agent leases a temporary display, moves a window there for full input, then restores it.

display acquireparkdisplay release

Screen recognition results identify their source: OCR, UI detection or the optional vision model.

Install Rocuronium

Get Rocuronium

  1. Install.brew install kageroumado/tap/rocuronium, or download the disk image.
  2. Grant permissions.Accessibility, and Screen Recording for screenshots and OCR.
  3. Connect your agent.claude mcp add rocuronium -- /Applications/Rocuronium.app/Contents/Resources/rocuronium mcp
  4. Give it the manual.rocuronium guide --install adds the skill; rocuronium guide prints it.

requirements & limits

  • macOS26.5 or later, including 27. Apple silicon.
  • AgentsMCP over stdio or shell commands.
  • TrustAccessibility grants unsandboxed control of anything you can see.
  • Stop⌃⌥⇧⎋ halts every action. Only the menu bar resumes; the agent cannot.
  • PrivacyOCR, detection and vision stay on your Mac. Input monitoring checks type and timing, never content.
  • LicenseMIT. Source ↗