There are two ways an agent gets a computer.
The chat in the app #
The chat drives your own Claude Code, installed on your Mac, over the Agent Client Protocol. It uses your Claude subscription. There is no API key to paste, and no model traffic goes through its.computer: the conversation runs between your Claude Code and Anthropic, exactly as it does in a terminal.
The chat has a scope: the copies it acts on, shown as chips in its header. The first chip is the primary copy. Select two copies and ask the agent to compare them; it acts on both.
Model, effort and permission mode are set per chat in its profile.
Any MCP client #
The same tools are served over MCP by the app itself. Today the chat inside the app uses them to drive your own Claude Code; pointing another MCP client (Claude Desktop, Cursor, a terminal Claude Code) at the running app is next.
How an agent finds a copy #
Every copy has an id: the worktree path, or <worktree path>#run-<tag> for a second copy of the same worktree. The agent gets ids from list_instances, the copy in focus from active_instance, and the whole selection from scope_instances. When you say "this" or "the app", the active copy is meant.
The tools fall into four families; the reference lists all eighteen with their parameters.
- See and act:
screenshot,click,type,key,scroll. A screenshot is saved to a file and its path returned, with the real frame size, so coordinates are right even when the window is resized. - Do work inside:
sb_runlaunches an app on the copy's screen;execruns a command and returns its output;tail_logsreads the same log channels the Logs tab shows. - Lifecycle:
start_instance,stop_instance,restart_instance,instance_ports. A copy can be started on a shared mesh network so two copies reach each other by IP. - Background tasks:
spawn_task,task_status,steer_task.
Background tasks #
A background task is a goal loop. Each iteration is a fresh agent session with the history replayed, and every reply ends with one marker line:
CONTINUE: <what happens next>
GOAL DONE: <the result>
A missing marker stops the loop. The default cap is 30 iterations, the maximum 200. You can pause a task after its current step, steer it with a message the next iteration will see, or cancel it. Tasks do not spawn tasks: depth is capped at one, on purpose.
Finished tasks stay in the app with their transcripts. Archiving hides them; nothing is deleted.