Native macOS automation

Action gives agents an API to record and share computer use.

Each macOS run can include video, screenshots, accessibility context, and traces.

Reading this as an agent? Start here — capabilities, connection, and which browser to drive.

macOS native local first early project
AppKit lifecycle ScreenCaptureKit AX + OCR CLI + MCP

Get Action on your Mac.

A signed, notarized build. Download it, drag it to Applications, and grant the two permissions macOS asks for the first time you record.

  • RequiresmacOS 14 or newer, Apple silicon.
  • PermissionsAccessibility to read and drive controls, Screen Recording to capture. Both are asked for on first use and can be revoked in System Settings.
  • LocalRuns and recordings stay on your Mac. Nothing is uploaded.

Then connect an agent

Action speaks MCP over stdio. Hand this to the agent once and the tools appear on its next task.

claude mcp add action -s user -e ACTION_ROOT=~/dev/action \
  -- bun --cwd ~/dev/action packages/mcp/src/index.ts

The runtime server currently runs from a source checkout, so this line needs the repository and Bun. A self-contained server that ships inside the app is the next step — until then, clone the repo alongside the app.

Give your agent a real Chrome camera.

Action Browser opens a separate, non-headless Chrome profile on demand. Your agent can navigate, inspect, click, fill, and return screenshots without taking over your personal browser.

  • RuntimeReal Google Chrome, kept out of the foreground while the agent works.
  • PrivacyAn isolated profile with no access to your personal cookies, tabs, or signed-in sessions.
  • RequiresmacOS, Google Chrome, and Bun.
Agent marketplace MCP ready

Ask Codex to install it

Paste this into Codex. The agent can run the marketplace commands for you.

Install the Action plugin marketplace from arach/action, then install action-browser@action. When installation finishes, tell me to start a new task so the browser tools can load.
Or install from the terminal
codex plugin marketplace add arach/action
codex plugin add action-browser@action

Start a new task and try it

A new Codex task loads the plugin’s MCP tools. This prompt exercises the shortest useful loop.

Open https://example.com in Action Browser, take a screenshot, and show it to me.

A native recording layer for agents at work.

Action lets agents use the real interface and records the run as it happens. The finished session is ready to review or replay.

01 / OBSERVE

See the surface

Capture the active window, screenshot, accessibility tree, and Apple Vision OCR.

02 / RESOLVE

Find a stable target

Prefer semantic, DOM, or AX evidence before falling back to coordinates.

03 / ACT

Execute deliberately

Run deterministic actions through native controls with explicit runtime state.

04 / RECORD

Package the run

Write the video, trace, screenshots, manifest, and finished marker as one session.

The work stays visible from run to review.

A 21-second tour of Action running in real Chrome and native macOS, preserving evidence, and handing the result to Mira for review.

“An agent can do the work. Action shows what happened.”

Observe, resolve, act, and record through a real browser and a native macOS runtime.

Every run preserves the capture, trace, snapshot, accessibility tree, and manifest so the result is ready to review, replay, and share.

Open the MP4

The path stays inspectable.

No daemon mystery state. No UI-only source of truth. Each transition has a reason, an owner, and an artifact trail.

01

Preflight

Resolve permissions, process state, and the target surface.

02

Running

Act, observe, and capture under explicit session state.

03

Completing

Stop cleanly and wait for the runtime’s finished marker.

04

Review

Reopen the session with its media, trace, and context intact.

More than pixels.

A capture should explain itself later. Action preserves the media alongside the runtime context that produced it.

01capture.movraw media
02trace.jsonruntime events
03snapshot.pngvisual state
04ax-snapshot.jsoninterface context
05manifest.jsonartifact index
{
  "mode": "inspection",
  "state": "completed",
  "surface": {
    "kind": "window",
    "bundleId": "com.apple.Calculator"
  },
  "artifacts": ["screenshot", "ax", "ocr", "trace"],
  "recordingFinished": true
}

A second set of eyes on every take.

Mira is the companion direction for following a session, surfacing what changed, and turning raw capture into an inspectable handoff.

Read the inspection direction
Mira, a compact cat-like field companion, monitoring a technical capture console

Build it. Launch it. Prove it.

The local workflow builds and signs a real app bundle, reports native permission state, and keeps recording completion explicit.

  • macOS on Apple Silicon
  • Bun and the Swift toolchain
  • Accessibility permission
  • Screen Recording permission
action / quick-start
$ bun install
$ bun run native:app:build
Action.app signed and ready
$ bun run native:doctor
Accessibility: granted · Screen Recording: granted
$ bun run action-dev -- launch
Action.app running