What happens when you ask it something
Three everyday requests traced through the same seven components: a connector write, a routine, and a task that needs the computer. The behaviour comes from the talk and the docs; the wiring between components is our reading, and each step is tagged.
The seven components in every diagram
Each diagram has one column per component. Arrows are calls between them; boxes inside a column are work that component does on its own. S2S marks a service-to-service call between server-side components: an authenticated internal call that carries the user and Bot IDs from the workflow, never from the model.
The person, and the surfaces you use: the desktop and mobile apps, Slack, email, voice.
- Sends requests and answers the Bot. xAI docs
- Approves risky actions on approval cards. xAI docs
- Takes over the computer's screen for passwords, 2FA, CAPTCHAs and payments. xAI docs
The entry point on the server side. Every piece of incoming work passes through it before a turn starts.
- De-duplicates: apps tag each message with a unique ID, so a retried send isn't processed twice. Talk
- Picks the Bot and conversation, and records where the wake-up came from. Talk
- Queues per conversation, one turn at a time. Your own 1:1 messages skip the line and can stop the turn; quick bursts become one turn. TalkxAI docs
- Verifies the sender (Slack's signature, your app session, a webhook's key) and maps the channel account, such as your Slack user, to your Cursor user. Inferred
- Starts a new Temporal workflow, or passes the message to one that's already running. How the router itself is built isn't documented. InferredUnknown
The agent loop: a Temporal workflow, one per task, executed by worker processes on server pods. Helper agents are workflows of their own.
- Builds the prompt and calls the model; each model call is an activity with its own timeouts and retries. TalkCursor eng
- Runs every tool call as an activity and records each step, so a crash resumes where it stopped. Cursor eng
- Carries the user and Bot IDs for the whole turn; nothing later takes identity from the model. Inferred
- Replies through SendToUser, or stays quiet. Talk
Our name for the application code that decides where a tool runs. In our model it runs inside the tool-call activity, on the same Temporal worker pods: Temporal schedules, retries and records the call, but doesn't route it. It could also be a separate service the activity calls. No source names or describes it.
- Sends server tools (connectors, memory, SendToUser, and most likely routines) to backend services, and computer tools (shell, files, browser) to the computer. xAI docsInferred
- Decides whether a call may wake a sleeping computer. TalkInferred
- Passes risky actions to the review model, a separate model that allows them, asks you, or denies them. xAI docs
Server-side services the loop calls with S2S calls. They hold the long-lived data and the outside connections.
- Connector layer: calls Salesforce, Gmail, Drive and other apps with your sign-in, server-side. Tokens never reach the model or the computer. xAI docs
- Routines service and scheduler: store routines in the Bot's profile and fire them on time. xAI docsInferred
- VM control plane (the "hypervisor" service): wakes, snapshots, resets and recreates computers. TalkInferred
- Conversation store and memory: the append-only log every app reads, plus memory and settings. TalkCursor eng
Systems outside Cursor's cloud.
- Apps reached through their APIs or MCP servers, from the backend, with your token. xAI docs
- Websites with no connector, reached through the browser on the computer. xAI docs
- With OAuth connectors they apply your permissions and see you, not a Bot. Bots have no identity of their own (Team Bots' key-based plugins use the Bot's credential). xAI docs
The user's Firecracker VM, shared by all of that user's Bots. Asleep unless a tool needs it.
- A command runner (worker) that executes tool calls; it most likely dials out to the server. TalkCursor engInferred
- A file server for files and the live desktop view, plus one screen and Chrome per Bot. Talk
- /workspace on a durable disk; sleeps as a snapshot and is restored in place on the next tool call that may wake it. xAI docsTalk
"Add a new lead in Salesforce"
You ask from Slack. The Bot writes to Salesforce as you, through a connector. The computer is never touched.
- 1You → RouterYou write "Add a new lead in Salesforce: Jane Doe at Acme" in a Slack DM to the Bot. xAI docs
- 2RouterThe router checks Slack's signature, looks up which Cursor user your Slack account is linked to, and queues the message in that conversation. Inferred
- 3Router → Agent workflowA workflow starts with your user ID and Bot ID in its context. Nothing later takes identity from the model. Inferred
- 4Agent workflowThe model picks the Salesforce "create record" tool and loads its details on demand. Talk
- 5Agent workflow → Tool routerThe workflow runs the call as an activity. Connectors are called from the server side, so the computer stays asleep. xAI docs
- 6Tool router → YouThe review model checks the write. If it asks, you get an approval card and tap Allow. Whether the card can show in Slack or only in the app isn't documented. xAI docsUnknown
- 7Tool router → Backend servicesService-to-service call: the tool-call activity calls the connector layer and passes your user ID from the workflow context. Your Salesforce sign-in is used there, server-side; the model and the computer never get the token. xAI docsInferred
- 8Backend services → Outside serviceSalesforce creates the lead with your permissions. It's recorded as created by you, through the connected app. Inferred
- 9Outside service → Agent workflowThe result comes back to the workflow and into the model. Inferred
- 10Agent workflow → YouThe model replies through SendToUser, and the reply shows up in your Slack DM. Talk
What this shows
- Identity comes from Slack plus the stored account link, never from the message text.
- The token never leaves the backend: not to the model, not to the computer.
"Every Monday, summarize my emails"
Creating the routine is one tool call. Each Monday, the scheduler starts a fresh turn on its own.
- 1You → RouterYou ask the Bot in a chat. xAI docs
- 2Router → Agent workflowA workflow starts with your user ID and Bot ID. Inferred
- 3Agent workflowThe model turns the request into a structured call: schedule, time zone, and the instruction to run each time (a stored prompt). Inferred
- 4Agent workflow → Tool routerThe workflow runs it as an activity. It's a server tool. Inferred
- 5Tool routerChecks: at least 5 minutes between runs, at most 50 routines per Bot. The review model sees it as an automation write. xAI docs
- 6Tool router → YouThe Bot confirms the schedule and details with you in the conversation; new routines need your OK. xAI docsTalk
- 7Tool router → Backend servicesService-to-service call to the routines service, carrying your user ID and Bot ID from the workflow. It saves the routine to the Bot's profile and registers the schedule. xAI docsInferred
- 8Backend services → Agent workflowThe result goes back to the model. xAI docs
- 9Agent workflow → YouThe Bot confirms the routine and shows its next run. xAI docs
- Each Monday
- 10Backend servicesThe scheduler fires a trigger tagged "routine". Inferred
- 11Backend services → RouterService-to-service call: the scheduler sends the trigger to the same router your messages go through, carrying the routine owner and Bot. Inferred
- 12Router → Agent workflowA new workflow starts, with the stored instruction as its input. Inferred
- 13Agent workflow → Tool routerThe model calls the Gmail tools. They're server tools. Inferred
- 14Tool router → Backend servicesService-to-service call to the connector layer with the owner's user ID. Which account a routine uses isn't documented; the owner's own Gmail is our reading (the docs only say routines count against whoever set them up). xAI docsInferred
- 15Backend services → Outside serviceGmail returns the messages. Inferred
- 16Outside service → Agent workflowThey come back into the model. Inferred
- 17Agent workflowThe model writes the summary and decides whether it's worth messaging you. Talk
- 18Agent workflow → YouYou get the summary. The run is recorded as succeeded or failed (the last 20 runs are kept). If a run needs an approval, the card expires after about 10 minutes and the action doesn't run. xAI docs
What this shows
- A routine is a stored prompt plus a schedule. Every run is a normal turn.
- Creating and running it both stay on the server. Gmail is a connector, so the computer isn't needed.
"Get last month's invoice from the vendor portal and put it in Drive"
No connector exists for the portal, so the Bot uses the browser on its computer. The VM control plane wakes the computer, you get the screen for 2FA, a connector uploads the file, and the control plane puts the computer back to sleep.
- 1You → RouterYou ask the Bot from the desktop app. xAI docs
- 2Router → Agent workflowA workflow starts with your user ID and Bot ID. Inferred
- 3Agent workflowThere's no connector for the portal, so the work goes to the computer-use helper (its own workflow). xAI docsTalkCursor eng
- 4Agent workflow → Tool routerThe helper asks for the browser. Talk
- 5Tool router → Backend servicesThe computer is asleep. Service-to-service call to the VM control plane (the "hypervisor" service) to wake it. TalkInferred
- 6Backend services → ComputerThe control plane has the Firecracker host restore the VM's snapshot in place: memory, disk and logins. How it talks to the host isn't documented. TalkUnknown
- 7Computer → Tool routerThe worker inside the VM reconnects to the server under the same ID, so the waiting call can be delivered. Cursor engInferred
- 8Tool router → ComputerThe Bot's own screen opens the portal in Chrome. Talk
- 9Computer → Outside serviceThe portal loads and asks for a login. Inferred
- 10Outside serviceThe login needs a code the Bot can't have. xAI docs
- 11Agent workflow → YouYou get a request to take over the screen. xAI docs
- 12You → ComputerYou type the code yourself on the live desktop; the model doesn't type it or receive it. That your app connects straight to the computer for this is our reading. xAI docsInferred
- 13ComputerThe helper finds the invoice and downloads it, most likely into /workspace (where downloads land isn't documented). Inferred
- 14Computer → Agent workflowThe helper reports back to the main agent with the file path, not the screenshots. TalkInferred
- 15Agent workflow → Tool routerThe main agent calls the Drive tool, a server tool. Inferred
- 16Tool router → Backend servicesThe file is read from the computer through the worker. Then a service-to-service call to the connector layer, with your user ID from the workflow, uploads it with your Drive sign-in. Inferred
- 17Backend services → Outside serviceDrive stores the file. Inferred
- 18Outside service → Agent workflowThe link comes back to the model. Inferred
- 19Agent workflow → YouYou get the reply with the Drive link. Talk
- 20Backend services → ComputerA few idle minutes later the computer goes back to sleep: files sync to cloud storage, then the VM is snapshotted and stopped. That the control plane drives this is our reading. TalkInferred
What this shows
- The computer only wakes for the part that needs a browser. Connectors still do the upload.
- You handle the 2FA step yourself, on the live desktop. The model doesn't type or receive the code.
The three side by side
What each request touches.
| Use case | Computer | Connectors | Your approval | Scheduler | Whose identity |
|---|---|---|---|---|---|
| Salesforce lead | stays asleep | Salesforce | Approval card, if the review model asks | No | Slack account linked to your Cursor user |
| Weekly email summary | stays asleep | Gmail | You confirm the routine | Yes, each Monday | The routine owner |
| Vendor invoice to Drive | wakes, then sleeps | Drive (browser for the portal) | You take over for 2FA | No | You, in the app |