Running an agent
A run has its own URL, streams its real terminal live, survives a refresh, keeps going when you navigate away, and can be cancelled for real.
Connecting to an agent gives you a shell you drive. A run is the other mode: the agent works on its goal by itself and you watch. Runs are addressed by URL, so a refresh, a closed tab, or a colleague opening the same link all land on the same live output.
Start a run
Run appears on the agents list, the deployment page, and an agent's detail page. Clicking it dispatches immediately and takes you to the run page. Agents that opt into user context get one extra step first: a box for free-text instructions for this run only — the ticket you are chasing, the branch to look at — which the agent receives alongside its goal.
The run page
The terminal is the run's real output, not pod logs: the same byte stream the session recorder persists. Joining late is fine — the stream replays its backlog on attach, so you see what already happened before catching up to live.
The header carries the run's session id and a status chip: starting while the pod comes up, running while it works, and a terminal state when it is over. If the socket drops, a Reconnect button re-attaches without losing the transcript.
Leaving without losing it
Minimize — or simply navigating away — docks the run as a tab at the bottom of the screen. The tab spins while the run executes, pulses when the agent is blocked waiting for input, and flips to a done or failed flag when it finishes. Clicking the tab returns to the run page. Dismissing the tab never cancels the run; it only stops showing it. See the terminal dock.
Cancelling
Cancel run asks for confirmation, then stops the run for real: the operator kills the run's process tree in the pod, including its background session, and the run is marked terminated. This is a genuine stop, not a UI dismissal — use it on a run that is looping or working from a wrong premise.
After it ends
A finished run keeps its page, plus two links: Replay plays the recorded terminal back at speed, and Timeline shows the parsed event stream — prompts, tool calls, results — merged with the audit record. Both live under Sessions, where every run is searchable after the fact.
From the CLI
exo agent run prod/adaptive/triage-bot --reason "nightly triage"
exo agent connect prod/adaptive/triage-bot
exo agent run waits while the pod is pending, then streams the live output the same way the dashboard does; add -v for the status block.