attention.run
attention.run docs
How to use attention.run: from a local hub to a flow that passes, the flow JSON reference, the attn CLI, the TypeScript SDK, MCP, SSH targets and webhooks.
Last updated 15 October 2026
attention.run automates any user interface you can see. You connect a screen (a Chrome or a desktop over VNC), record what you do on it, cut the parts you care about into a library of elements, and automate with flows that find those elements by their pixels. These docs cover what the product does today; where something is planned, they say so.
Start here
- Getting started: a local hub with the fixture app, a recording, four elements, a flow and a passing run, in about fifteen minutes.
- Concepts: targets, sessions and recordings, elements and libraries, flows, runs and triggers.
Reference
- Flow JSON: every field and step of a flow, generated from the schema the hub validates with. The JSON Schema itself is at /schema/flow-v1.json.
- The attn CLI: push flows, start runs and wait for them in CI, share a screen, run the MCP proxy.
- The TypeScript SDK: the hub’s API, runs, live sessions driven call by call, and sharing a screen from a script.
- MCP: the tools an AI agent gets, over Streamable HTTP or through
attn mcp. - SSH targets: a screen on your own machine as a target, with one
ssh -Rcommand orattn share. - Webhooks: start runs from a webhook, and get a signed request when a run ends.
Where things run
- The hub keeps targets, recordings, libraries, flows and runs, and serves the web app and the API (
/api/v1). - A runner connects the screens: it opens Chrome or a VNC connection, records frames, finds elements and sends input. A local hub (
npm run dev,npm run demo) runs one in the same process. - Clients talk to the hub only: the web app, the
attnCLI, the TypeScript SDK and MCP clients.
Status
attention.run is an invite-only preview. The hosted app at app.attention.run sits behind Cloudflare Access, which lets invited people in through the browser; the CLI and the SDK can’t reach its API from outside yet. MCP clients that connect by address sign in by themselves (MCP), once the hosted app lets them through. Everything in these docs works against a local hub, which is how the examples are tested.
The attn CLI and @attn/sdk aren’t published to npm yet: they run from a checkout of the attention.run repository. Planned and not built yet: a published CLI and SDK, attn login, TypeScript flows that run on the hub, triggers on what appears on a screen (agents can already watch a screen), and docs that show your own hub, targets and flows when you’re signed in.
About the examples
In code blocks, the values you replace have a dotted underline: hover one to see what it stands for. The copy button on a block copies it as shown.
- Addresses are the hosted app’s:
https://app.attention.runfor the hub andssh.attention.run(port 22) for SSH targets. With a local hub (npm run dev,npm run demo), usehttp://127.0.0.1:7300and127.0.0.1port 7322 instead. - What runs on your machine keeps its local address: Getting started runs a local demo hub, and the example flows sign in to the fixture app it starts (
http://127.0.0.1:7310).
Every example that isn’t marked as untested in the source runs in CI against a local hub with the fixture app, with that hub’s values in place of the examples, so the commands and scripts work as written there.