computer-use
Allows control of Arc browser tabs via CDP/AppleEvents, including listing open tabs, opening background tabs, inspecting page state, and interacting with browser content.
Allows control of Brave browser tabs via CDP/AppleEvents, including listing open tabs, opening background tabs, inspecting page state, and interacting with browser content.
Provides macOS desktop control through Accessibility APIs, including launching apps, inspecting UI element trees, clicking/typing/pasting, managing window layouts, and capturing window screenshots without moving the physical cursor.
Allows control of Safari via AppleEvents/JXA, enabling tab listing, opening tabs, inspecting state, and interacting with pages.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@computer-use Open Calculator and compute 19 × 23 so I can watch the cursor glide."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Antigravity Codex Computer Control (computer-use MCP + Browser Extension + Plugin)
A 100% self-contained, zero-npm-dependency macOS Desktop + Browser Computer-Use MCP server, "Antigravity in Chrome" MV3 Extension, and First-Class Antigravity Plugin built for Google Antigravity on MacBooks (Apple Silicon M1/M2/M3/M4 & Intel).
It gives every Antigravity chat full control over macOS apps, multi-window layouts, and live browser tabs (Brave, Chrome, Edge, Arc, Vivaldi, Opera, Safari)—with 1:1 OpenAI Codex Computer Use (@oai/cua, @oai/sky, cua_repl) parity, Chrome Tab Groups, Two-Tier file uploads, downloads, DevTools console/network/cookie inspection, and a sleek 0.72x pill-free fluid virtual cursor that never hijacks your physical mouse pointer.
Requirements
macOS 13.0+ (macOS 14.0 Sonoma+ recommended for
ScreenCaptureKitbackground window pixel capture)Google Antigravity installed on your MacBook
Node.js
>= 22.0.0(uses built-inWebSocket,fetch,node:net,node:vm, andnode:test— zeronpm installpackages required!)Check with
node -v. If missing or older than v22, run:brew install node(ornvm install 22).
(Optional) Xcode Command Line Tools (
xcode-select --install) if you want to recompilenative/MacCUAHelper.swiftfrom source. A prebuilt Universal (arm64+x86_64) binary is already included atbin/mac-cua-helper.
Related MCP server: macos-control-mcp
Installation (Pick Option A or Option B)
Option A — Zero-Terminal Setup (Ask Antigravity to Install It!)
Open Antigravity on your MacBook and paste this directly into a chat:
Clone
https://github.com/Cassius-stack/antigravity-codex-computer-control.gitinto~/antigravity-codex-computer-control, runchmod +x install.sh && ./install.sh, verify all 17 MCP tools pass, and tell me which macOS permissions and unpacked browser extension step to complete.
(For AI Agents reading this repository: simply run bash ./install.sh --no-prompt-permissions inside the repository root. It automatically locates Node >= 22, builds or de-quarantines bin/mac-cua-helper, installs NativeMessagingHosts for Brave/Chrome/Edge/Arc/Vivaldi/Opera, installs the antigravity-computer-use plugin bundle into ~/.gemini/config/plugins/antigravity-computer-use/, merges "computer-use" into ~/.gemini/config/mcp_config.json, and verifies all 17 tools over stdio.)
Option B — 1-Command Terminal Install
Clone this repository anywhere permanent on your MacBook:
git clone https://github.com/Cassius-stack/antigravity-codex-computer-control.git ~/antigravity-codex-computer-control cd ~/antigravity-codex-computer-controlRun the turnkey installer:
chmod +x install.sh uninstall.sh ./install.sh
./install.sh automatically:
Removes any macOS Gatekeeper quarantine flags (if downloaded as a
.zipor via AirDrop).Locates your
node(>= 22) binary acrossPATH, Homebrew (/opt/homebrew/bin),nvm,fnm,volta,asdf, andmise.Rebuilds
bin/mac-cua-helpernatively ifswiftcis installed (or uses the bundled Universalarm64+x86_64binary).Generates the local
bin/antigravity-native-hostshim and installscom.antigravity.browser_bridge.jsonintoNativeMessagingHostsfor Brave, Google Chrome, Chrome Canary, Chromium, Microsoft Edge, Arc, Vivaldi, and Opera.Installs/updates the Antigravity Computer Control plugin (
rules/AGENTS.md+computer-use&browser-controlskills) in~/.gemini/config/plugins/antigravity-computer-use/.Registers
"computer-use"inside~/.gemini/config/mcp_config.json(preserving any other MCP servers you already have) and verifies all 17 tools over stdio.
15-Second "Antigravity in Chrome / Brave" Side Panel & Bridge Setup
No --remote-debugging-port flags or browser restarts required! To enable the docked Antigravity Side Panel Chat Bar (matching Claude in Chrome & Codex / ChatGPT in Chrome) plus live zero-flag background CDP + Tab Groups control in Brave, Chrome, Edge, Arc, Vivaldi, or Opera:
Open
brave://extensions(orchrome://extensions/edge://extensions) in your browser.Toggle Developer mode ON (top-right corner).
Click Load unpacked (or Reload
↻if upgrading) and select theextension/folder inside this repository (~/antigravity-codex-computer-control/extension).Click the Antigravity toolbar icon (or press
Cmd + Shift + .) to open the docked Side Panel Chat Bar right beside any webpage!
How the Two-Way Bridge Works (Claude in Chrome & Codex Parity)
Docked Webpage Chat Bar (
sidepanel.html— Authentic New Google Gemini Look + Codex in Chrome Parity):Chat Mode (Reader — Zero Debugger Banner): Automatically shares bounded active-page context, headings, and live highlighted selection (with 1-click context preview and per-site
Allow/Ask every time/Blockgovernance), plus@Chrome/ multi-tab@mentions, local file/image drag-and-drop & clipboard paste (with binary file protection), and 1-click screenshots without attachingchrome.debugger.Interactive Webpage Element Picker (
Pick element): Hover and click any element on the live webpage (including open Shadow DOM, Trusted-Types-safe, zero debugger banner) to attach its CSS selector, ARIA role/label, bounding box, computed styles, and sanitized HTML snippet directly into your prompt.Agent Mode (Browser Control) & Live Activity Stream: Lets Antigravity click, type, fill forms, upload/download files, and organize color-coded Tab Groups inside your logged-in browser with an expandable chronological Activity Stream.
Workflow Demonstration Recorder, Slash Shortcuts (
/) & Scheduled Tasks (⏰): Record up to 120 webpage actions (with automatic password redaction) into reusable/shortcuts, run built-in oragyskills, and schedule recurring browser workflows viachrome.alarms.Permission Modes (
Auto/Ask/Full), Reasoning Effort (Low/Medium/High), Workspacecwd& Live Model Picker: Choose your model family and thinking effort from the top-left Gemini selector, configure workspace directory & custom instructions, and approve sensitive actions inline.
Exact One-Way Session Sync + Two-Way Browser Control:
Start in Chrome → View in Desktop App: Conversations started inside the Antigravity in Chrome Side Panel run via
agy acp --app-data-dir antigravity, so they automatically appear inside your Antigravity Desktop App where you can view or continue them anytime (click↗in the Side Panel header to jump straight toAntigravity.app).Start in Desktop App → Control Browser Tabs: Conversations started inside the Antigravity Desktop App control your live Brave/Chrome tabs seamlessly via the Native Messaging Unix socket bridge, and are intentionally not opened inside the Chrome Side Panel's chat list.
One-Click Take Over & Detach: Click
[Antigravity · Take Over]in any active tab or "Take Over" in the Side Panel banner to detachchrome.debuggerimmediately.
Mandatory One-Time macOS Permissions (Takes 30 Seconds)
Because Antigravity spawns computer-use as a child process, macOS checks permissions against Antigravity itself:
Open System Settings → Privacy & Security → Accessibility
Toggle Antigravity (or Antigravity IDE) ON.
(If it isn't listed yet, click
+and select/Applications/Antigravity.app.)
Open System Settings → Privacy & Security → Screen & System Audio Recording
Toggle Antigravity ON.
Quit (
Cmd + Q) and reopen Antigravity once so macOS activates both permissions and loads thecomputer-useMCP server +antigravity-computer-useplugin globally across all your chats!
Tip: Browser screenshots via CDP require zero Screen Recording permission, and macOS windows automatically fall back to a clean 1:1 vector Accessibility wireframe preview if Screen Recording is off.
Try It Out in Antigravity!
Once you reopen Antigravity, open any chat and try one of these prompts:
Daintier Fluid Cursor + App Control:
"Open Calculator and compute
19 × 23usingcomputer-useso I can watch the virtual cursor glide."Tab Groups + Live Browser Research:
"Open Hacker News and GitHub Trending in a purple 'Morning Brief' Tab Group using
browser_open_tab, summarize the top stories, and runfinalize_sessionwhen done."One-Click Multi-Window Layout:
"Use
manage_windowsto tile Calculator and Notes side by side (tile_left_right)."DevTools Console & Network Inspection:
"Inspect my active localhost tab with
browser_tab_action(get_console_logsandget_network_requests) and diagnose any failing API requests."
Manual ~/.gemini/config/mcp_config.json Reference
If you ever want to inspect or configure ~/.gemini/config/mcp_config.json by hand, ./install.sh writes an entry structured like this:
{
"mcpServers": {
"computer-use": {
"args": [
"/path/to/antigravity-codex-computer-control/src/server.mjs"
],
"command": "/opt/homebrew/bin/node",
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
},
"disabled": false
}
}
}Key Capabilities & Architecture
1. Non-Intrusive Background macOS Control (native/MacCUAHelper.swift)
Inspects any open or background macOS app's Accessibility (
AXUIElement) hierarchy and assigns stable numeric element indices ([1],[2], ...).Executes
AXPress,AXConfirm,AXSetAttributeValue,AXSelectedTextRange, secondary actions (ShowMenu,Increment,Decrement,Expand,Collapse), PID-targetedCGEventPostToPidtyping/shortcuts, and pure[x, y]coordinate clicks/drags without stealing your physical mouse cursor.Automatic Clipboard Preservation:
paste("text","md","html") snapshots allNSPasteboarditems before pasting and restores your clipboard immediately afterward behind an async mutex.Unified 1:1 Window-Relative Point Coordinates:
get_window_stateelement@(x,y WxH)bounds, 1:1 point-scaledScreenCaptureKitscreenshots, andwindow_action(x, y)all share the exact same coordinate space.
2. Daintier 0.72x Pill-Free Fluid Virtual Cursor (MacCUAHelper.swift & src/browser-ax.mjs)
Sleek
0.72xSilhouette &FogCursorStyleAura: Rounded cubic-BezierAgentCursor(~16.5pt tall, tip anchored at exact(0, 0)) at-44°(#000000→#0D0D11body, ~2.0pt#FFFFFFborder,13.5ptsky-blue radial mist, daintier concentric click ripples, comet drag trails, and zero mouse-pill clutter).Dual-Regime Motion Planner:
Short hops (
≤ 196pt—Scoot): Direct 2D spring(response: 0.30s, damping: 0.85)with directional velocity stretch and inertia tilt.Long flights (
> 196pt—Bezier): Evaluates 20 cubic-Bezier arc candidates against screen/viewport margins, selects the lowest-curvature natural arc, rotates dynamically along the curve tangent, and settles back to-44°on arrival.
3. Extension-First Browser Parity (extension/, bin/antigravity-native-host.mjs, src/cdp-client.mjs)
Multiplexed Native Messaging Bridge:
bin/antigravity-native-host.mjsbridges Chrome's 4-byte uint32 LE stdio framing (max 32 MiB) to/tmp/antigravity-browser-bridge/bridge-<pid>.sock(0700dir,0600socket), letting multiple concurrent Antigravity MCP processes share live browser access cleanly.Tab Groups & Ownership:
createTabgroups agent tabs automatically;claimTabclaims personal tabs in-place;markTab(deliverable|handoff|scratch) &finalizeSessionclose scratch tabs and detach debuggers when finished.Two-Tier
upload_files, Downloads, Non-Blocking Dialogs, Iframes & Ring Buffers:Direct
<input type="file">, button-triggeredPage.fileChooserOpenedinterception, AND automatic chunked base64DataTransfer+Filefallback for custom dropzones or restricted file URLs.wait_for_download/list_downloads(chrome.downloads+ CDPBrowser.setDownloadBehavior), non-blockingalert/confirm/prompt/beforeunloadhandling, same-origin iframe coordinate offset accumulation + cross-origin OOPIFtab.frameLocator(selector), 500-entry console & network ring buffers, cookies, and Web Storage.
Safety Policy & CAPTCHA Handoff (
src/safety-policy.mjs): Blocks sensitive browser settings/local credentials and detectsTurnstile,reCAPTCHA, andhCaptchachallenges ([HANDOFF REQUIRED: ...]).
All 17 MCP Tools
Tool | Description |
| Unified snapshot of permissions, displays, apps, open macOS windows, browser tabs, and active virtual cursors |
| List running or installed macOS applications |
| Launch one ( |
| List open macOS windows with IDs, bounds, titles, and minimized/on-screen status |
| Multi-window tiling/layout presets & batch move/resize/minimize/raise/activate/close |
| Indexed AX tree ( |
| Action on any macOS window ( |
| List controllable/running browsers (Extension-First, raw CDP, |
| Open one ( |
| Indexed DOM/AX tree + smart diffing + optional live CDP JPEG screenshot ( |
| Browser tab action ( |
| Session & browser management ( |
| Move, hover, highlight, inspect, hide, clear, or configure macOS & browser virtual cursors ( |
| Run heterogeneous macOS window, layout, cursor, and browser operations concurrently in a single call |
| Persistent Codex-compatible |
| Reset the persistent |
| Check or trigger macOS Accessibility & Screen Recording permission prompts |
Repository Structure
computer-use-mcp/
├── install.sh # One-command macOS installer (MCP + NativeHost + Plugin)
├── uninstall.sh # Cleanly removes MCP entry, NativeMessagingHosts, and Plugin
├── package.json # Zero-dependency ESM package definition (Node >= 22)
├── bin/
│ ├── mac-cua-helper # Prebuilt Universal (arm64 + x86_64) native macOS helper
│ └── antigravity-native-host.mjs # Dual Native Messaging <-> Unix socket mux + agy ACP Side Panel host
├── extension/ # Unpacked "Antigravity in Chrome" MV3 Side Panel + Bridge extension
│ ├── manifest.json # MV3 manifest (sidePanel + deterministic ID cnipmpbdggdeocaigfifflifphanoiic)
│ ├── background.js # Side Panel ACP controller, Scheduled Tasks, Tab Groups & lazy CDP router
│ ├── sidepanel.html / .css / .js # Docked Side Panel chat bar (Chat/Agent modes, @ tabs, / shortcuts, ⏰ tasks)
│ ├── offscreen.html / offscreen.js# 20s service-worker keepalive heartbeat
│ ├── popup.html / popup.css / .js # Status fallback view
│ └── icons/ # 16 / 32 / 48 / 128px extension icons
├── plugin/ # First-class Antigravity Plugin bundle (antigravity-computer-use)
│ ├── plugin.json # Antigravity plugin manifest
│ ├── assets/logo.png # Plugin icon
│ ├── rules/AGENTS.md # Always-on routing & browser safety rules
│ └── skills/ # computer-use & browser-control playbooks
├── native/
│ └── MacCUAHelper.swift # Native Swift AppKit/AXUIElement/CGEvent/ScreenCaptureKit/Cursor engine
├── scripts/
│ ├── build-native.mjs # Universal (arm64 + x86_64) Swift builder + ad-hoc codesigner
│ └── setup-antigravity.mjs # Atomic mcp_config, NativeMessagingHosts & plugin installer
├── src/
│ ├── server.mjs # MCP stdio server entrypoint & 17-tool router
│ ├── protocol.mjs # Zero-dependency JSON-RPC 2.0 MCP stdio transport
│ ├── mac-bridge.mjs # Persistent JSON-lines bridge to bin/mac-cua-helper
│ ├── extension-bridge.mjs # Unix socket client & ExtensionCDPConnection adapter
│ ├── cdp-client.mjs # Extension-First + Multiplexed CDP + Safari/AppleEvents controller
│ ├── browser-ax.mjs # DOM/Iframe AX indexer + 0.72x ShadowRoot cursor & Take Over UI
│ ├── safety-policy.mjs # Sensitive URL blocker & Turnstile/reCAPTCHA/hCaptcha detector
│ ├── cua-repl.mjs # Persistent node:vm runtime (cua, sky, agent, nodeRepl)
│ ├── diff.mjs # Smart line-diff tracker for compact state updates
│ └── keys.mjs # macOS CGKeyCode & CDP key chord parser
└── test/
├── unit.test.mjs # Fast unit & physics tests
├── native-mac.test.mjs # Live AppKit multi-window AX & layout integration tests
├── cursor-and-mcp.test.mjs # End-to-end MCP stdio, 0.72x pill-free cursor & precision tests
├── extension-and-codex-parity.test.mjs # Native host, Tab Groups, uploads/downloads/dialogs/OOPIF tests
└── fixtures/ # Background Cocoa test fixture app (source + universal bundle)Commands (Build, Check, Test, Uninstall)
# Verify MCP server & check macOS permissions without modifying config
npm run check
# Rebuild native Swift universal binary from source
npm run build:native
# Run full unit + live macOS + browser parity integration test suite
npm test
# Remove 'computer-use', NativeMessagingHosts, and plugin bundle
./uninstall.shAvailable Tools
17 toolsbatch_executeB
Execute multiple operations across ANY combination of macOS windows, window layouts, app launches, virtual cursors, and multiple browser tabs in ONE single click/call (parallel by default).
Inputs: steps (required), parallel, stop_on_error.
browser_listARead-only
List all available browsers (live CDP browsers, managed background 'iab' Chromium, Safari/Chrome/Brave/Edge) and their open tabs.
Inputs: browser_id.
browser_manageB
Manage browser sessions, Chrome Tab Groups, tab ownership/lifecycle, history, and bookmarks via the Antigravity Browser Extension bridge: status, list_tab_groups, create_tab_group, group_tabs, update_tab_group, name_session, ungroup_tabs, claim_tab (in-place without moving user's tab), mark_tab ('deliverable' | 'handoff' | 'scratch'), finalize_session (closes scratch tabs + detaches debuggers so Chrome/Brave banner vanishes), search_history, list_bookmarks, create_bookmark.
Inputs: url, name, color, count, +16 more.
browser_open_tabA
Open one or multiple controllable browser tabs in the background (uses live Antigravity Extension Chrome Tab Group when connected, or auto-connects to CDP / auto-launches Chromium, or opens Safari tabs when browser_id='safari') and return their indexed DOM/AX trees.
Inputs: url, urls, active, ungroup, +9 more.
browser_tab_actionC
Operate any browser tab in the background via Extension CDP, raw CDP, or AppleEvents without stealing focus (with live 0.72x in-tab virtual cursor, click ripples, and element highlight): click, hover, move, set_value, type_text, press_key, paste (text/md/html without touching OS clipboard), select_text, perform_secondary_action, scroll, drag, goto, back, forward, reload, close, evaluate, upload_files (Two-Tier CDP + DataTransfer fallback), wait_for_download, list_downloads, get_dialog, handle_dialog, get_console_logs, get_network_requests, get_network_body, get_cookies, set_cookies, clear_cookies, get_storage, set_storage, wait_for.
Inputs: action (required), x, y, key, +57 more.
browser_tab_stateARead-only
Inspect a browser tab's indexed DOM/Accessibility tree ([1], [2], ...) and/or capture a live background JPEG screenshot via CDP (works even when minimized or occluded, with zero Screen Recording permission required).
Inputs: tab_id, tab_url, browser_id, disable_diff, +3 more.
cursor_controlA
Inspect, move, hover, highlight, hide, clear, or configure the Codex-style visual cursor & element bounding-box overlays across macOS windows (native 60fps AppKit overlay windows) and browser tabs (ShadowRoot CSS overlays).
Inputs: x, y, app, badge, +15 more.
get_stateARead-only
Inspect the unified desktop state in one call: macOS permissions, displays, running/installed apps, all open macOS windows with bounds & IDs, all browsers with their open tabs, and active virtual cursors.
Inputs: include_all_apps.
get_window_stateARead-only
Capture the indexed Accessibility (AX) UI tree ([1], [2], ...) of any macOS window or application in the background with 1:1 window-relative @(x,y WxH) coordinates, smart diffing, and optional isolated window screenshot.
Inputs: app, window_id, auto_launch, disable_diff, +4 more.
jsA
Codex-identical persistent JavaScript REPL (cua_repl). Top-level bindings persist across calls. Exposes cua (getState, getApp, launchApp, getWindowState, manageWindows, createBrowserTab, getBrowserTab, getBrowser, cursor), sky (Sky macOS Window & Desktop APIs), agent.browsers, and nodeRepl (emitImage, emitMarkdown, write). Ideal for complex multi-window & multi-tab workflows with Promise.all.
Inputs: code (required), timeout_ms.
js_resetA
Reset the persistent JavaScript REPL context (js) and clear cached Accessibility diff baselines.
Inputs: no named parameters.
launch_appA
Launch one or multiple macOS applications by name, bundle ID, or .app path (launches in the background by default without stealing focus unless activate=true).
Inputs: app, apps, activate.
list_appsBRead-only
List macOS applications (running apps and/or installed /Applications bundles).
Inputs: running_only.
list_windowsARead-only
List open macOS windows with their window IDs, owning apps, titles, bounds, and minimized/on-screen status.
Inputs: app, include_minimized.
manage_windowsA
Control and arrange multiple macOS windows in one click: apply automatic multi-window layouts (tile_left_right, tile_grid, quadrants, cascade, maximize, center, left_half, right_half, top_half, bottom_half) or batch explicit move/resize/minimize/unminimize/raise/activate/close operations.
Inputs: gap, layout, targets, activate, +2 more.
permissionsB
Check or request macOS Accessibility and Screen Recording TCC permissions.
Inputs: request, prompt_accessibility, prompt_screen_capture.
window_actionA
Perform an action on a macOS window or app (click, hover, move, set_value, type_text, press_key, paste with automatic clipboard restore, scroll, drag, select_text, perform_secondary_action) with smooth 60fps virtual cursor feedback. Element-index actions operate in the background without moving the user's physical cursor.
Inputs: action (required), x, y, app, +32 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Most tools target distinct domains (apps, windows, browser tabs, cursor, permissions), but there are overlapping entry points: get_state duplicates app/window/browser listing, browser_manage broadly overlaps the browser_* family, and batch_execute vs js both serve multi-step orchestration. Descriptions help, but an agent can reasonably hesitate between these alternatives.
Names are consistently snake_case and grouped by prefix (browser_*, window-related), but the convention is mixed: some are verb_noun (list_apps, get_window_state) while others are noun_verb/noun phrases (window_action, browser_tab_state, cursor_control, batch_execute, browser_manage) and a few are bare nouns (permissions, js). Readable, but not a predictable verb_noun pattern.
17 tools is at the heavy end of the 3-15 guideline, and the surface includes broad mega-tools (browser_manage, window_action, browser_tab_action) alongside overlapping orchestration tools (batch_execute, js). Given the broad computer-use scope it is defensible, but it feels overloaded rather than tightly scoped.
Coverage is strong across macOS apps/windows, browsers, cursor overlays, batching, scripting, and permissions, with lifecycle management for windows and browser tabs. Minor gaps remain: no explicit app quit/terminate operation, and global system-level controls are absent, but agents can work around these via window/browser close or js.
Maintenance
Related MCP Connectors
Connect ChatGPT and Claude to your Mac, Windows or Linux with secure MCP remote access.
Use a person's computer after they approve it there: files, Terminal, browser, local MCP.
Use a person's computer after they approve it there: files, Terminal, browser, local MCP.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to automate macOS desktop tasks including mouse control, keyboard input, screenshots, window management, and UI interaction.10 npm415MIT
- AlicenseBqualityDmaintenanceMCP server that enables AI to fully control macOS — mouse, keyboard, terminal, screenshots, window management, UI element detection, and provides AI-optimized information reporting.3629 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to control macOS via accessibility and screen recording, providing tools to list apps, observe UI, click, type, press keys, and scroll.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to inspect and control macOS applications through Accessibility trees, screenshots, and OCR. It supports clicks, typing, key presses, scrolling, drags, clipboard paste, window actions, and scripted actions via MCP.MIT