Unified API for your workspace
Windows, sessions, layouts, and a local API for keeping the whole Mac organized and programmable.
Explore Lattices →Give agents a workspace of their own. Follow their work in a live preview.
macOS + Linux · CLI + MCP
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.
Install Action, grant permissions, and take your first screenshot.
macOS on Apple Silicon · Install Bun first
No source build needed.
Expect: Action.app opens from Applications. The CLI is available as lats.
bun add -g @arach/lattices
lats action install --launchExpect: Approve Accessibility and Screen Recording in macOS, then run the second command. Both permissions should report granted.
lats action call permissions.request
lats action call permissions.snapshotExpect: The reply reports status: screenshot. Your main display capture opens in Preview. This captures your screen, not a private workspace.
lats action call capture.screenshotScreen \
'{"output":"/tmp/action-first.png"}'
open /tmp/action-first.pngAgent not reachable? Run lats action launch, then retry. Permission denied? Enable Action in System Settings → Privacy & Security, quit and reopen Action, then check permissions again.
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 instructionsLinux 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 setupAn agent or operator calls the local Action runtime, which owns the session, targets, and orchestration. ActionAgent bridges those 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.
One family, two focused products
Windows, sessions, layouts, and a local API for keeping the whole Mac organized and programmable.
Explore Lattices →Target resolution, on-device actions, capture, trace, and review for one inspectable piece of work.
Download Action →Use Action on its own, or pair it with Lattices when the whole workspace needs to stay organized and programmable.
Built for macOS
Review the video, screenshots, and activity log after a run. Action also records when capture has finished.
Action finds buttons and fields through Accessibility and the browser DOM before falling back to screen coordinates.
Action uses AppKit and ScreenCaptureKit, with access controlled by your macOS permissions.
Each run keeps its video, screenshots, activity log, and capture completion status together.
From source
Local commands live in package.json. Run them with bun from 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