An API for agents to use your computer.

A standalone CLI, MCP server and native Mac app. Give your agent computer use through the engine you choose.

bun add -g @lattices/action

macOS · CLI, MCP & TypeScript · Install independently

A real terminal. A real browser. A live agent preview.

29-second development preview. Scripted sequence, real MCP calls.

A Ghostty terminal sits on the left and a browser on the right of a virtual desktop. The terminal runs an Action call that opens the Lattices docs. Its next call creates a second virtual workspace, whose live preview appears over the browser. Further calls navigate that workspace to the docs and read the page title. The entire stage is recorded locally on a Mac. This is a timed script executing real calls, not an agent deciding its next steps live. There is no audio.

Open full-size video

Your engine.
The same Action.

Use Action’s native Mac engine, or connect Codex Computer Use or Cua Driver. Install the CLI once and add the companion app for your chosen engine. Each works through the same CLI, MCP server and TypeScript API.

Action native

Built into Action.app

Control Mac apps through Accessibility. Add native screenshots, recording and a live view of the agent’s workspace with the Action runtime.

action setup action-cuaRequires Action.app

Codex Computer Use

OpenAI

Bring the computer-use engine from the ChatGPT desktop app into your Action workflow.

action setup codex-cuaRequires the Computer Use plugin

Cua Driver

Cua / trycua

Connect Cua’s local Mac driver for Accessibility actions, screenshots, keyboard and pointer input.

action setup trycua-cuaRequires CuaDriver.app and cua-driver

You choose what can take control.

Observe and semantic Accessibility actions are enabled by default. Keyboard and pointer input require explicit permission with --allow attention.

You select the engine for every command. Compare actions and engine requirements

Try Action’s native engine

Install Action.app, grant permissions, and take your first screenshot.

macOS on Apple Silicon · Install Bun first
No source build needed.

  1. Install and launch

    Expect: Action.app opens from Applications. The CLI is available as action.

    bun add -g @lattices/action
    action install --launch
  2. Allow access

    Expect: Approve Accessibility and Screen Recording when macOS asks. Setup waits for both, then reports action-cua: ready.

    action setup action-cua
  3. Take a screenshot

    Expect: The reply reports status: screenshot. Your main display capture opens in Preview. This captures your screen, not a private workspace.

    action call capture.screenshotScreen \
      '{"output":"/tmp/action-first.png"}'
    open /tmp/action-first.png

Something not working?

Agent not reachable? Run action launch, then retry. Permission denied? Enable Action in System Settings → Privacy & Security, quit and reopen Action, then run action status.

Next, connect your agent

The app download includes native capture. Agent-driven browser work and the virtual workspaces in the demo also need the matching MCP runtime and host preflight.

MCP setup and agent instructions

Working with Linux?

Linux uses a remote lattices-host connection, not the macOS app. Available actions depend on the host; macOS overlays and Accessibility are not available there.

Remote Linux setup
AppKit lifecycleScreenCaptureKitAX + OCRCLI + MCP

Inside Action’snative engine.

With Action’s native engine, an agent or operator calls the local runtime. It owns sessions, targets and orchestration, while ActionAgent bridges requests into native macOS work.

Action.app owns AppKit, WebKit, permissions, and capture. The run comes back with its receipts attached, including an explicit finished marker when recording is actually complete.

Action system map
Hover to separate · click to hold
FINISHEDSNAPSHOTSVIDEO + TRACEEVIDENCECAPTURE PROBEACTION.APPAX + WEBKITACTIONAGENTNATIVE MACOSTARGETSSESSIONRUNTIMELOCAL RUNTIMELAUNCHERCLIAGENT + MCPREQUEST
System · Four local planes, one inspectable run

See what happened.

Action’s native runtime keeps screenshots and an activity log with each session. When you record a run, it also tracks when capture has finished.

01

Find the right control

Action finds buttons and fields through Accessibility and the browser DOM before falling back to screen coordinates.

02

Run on the Mac

Action uses AppKit and ScreenCaptureKit, with access controlled by your macOS permissions.

03

Review the recording

A recorded native session keeps its video, screenshots, activity log, and capture completion status together.

Build it. Launch it. Prove it.

Local commands live in package.json. Run them with bun from products/action.

  • macOS on Apple Silicon
  • Bun and the Swift toolchain
  • Accessibility permission
  • Screen Recording permission
Getting started →
products/action
$ bun install$ bun run native:app:buildAction.app signed and ready$ bun run native:doctorAccessibility: granted · Screen Recording: granted$ bun run native:launchAction.app running

Give the agent a computer-use path you can review.

Part of the Lattices family. Install and use Action on its own.