Use plan mode
This guide shows you how to get a structured plan out of an agent before it writes any code.
In plan mode the agent researches read-only and its only deliverable is a typed plan: a dependency graph of steps you approve, which Control Center then compiles into real work. Use it when you want to see the scope of a change, get the steps broken down, or have risks and dependencies named before anything is touched.
Switch a space into plan mode
Section titled “Switch a space into plan mode”Any of these flips the space’s mode and the change is persisted:
- Pick Plan from the mode dropdown on the far left of the composer toolbar
- Press Shift+Tab
- Send
/plan. A bare/planjust arms the mode;/plan <request>arms it and sends the rest as your message
/plan never travels as text — it sets the stored mode, which is the authority the
tool surface, the guard preset and the prompt all read. So the mode holds for this
turn and every turn after it, until you change it back.
The mode is stored on the space, so the same agent can be in plan mode here and in agent mode elsewhere.
What the agent produces
Section titled “What the agent produces”- It researches read-only — memory, the code index, files
- It calls
submit_planonce, with agoalplusnodes, each carrying a stablekey, atitle, adescriptionand the node keys itdependsOn(which is what lets independent work run in parallel) - It stops
The tool validates the graph — duplicate keys, dangling dependencies, cycles — and returns violations for the agent to fix rather than accepting a broken plan.
The plan appears in the conversation as a compact row showing the goal, its status and the step count. Plan Studio — the dependency graph, the per-node inspector and the cost estimate — opens as a tab beside the conversation: press Open on the row, or simply wait, because a plan that lands within 30 seconds while you are watching the conversation opens its tab itself.
Prose is not a deliverable here. A run that ends without calling submit_plan
posts a visible “Ended without submitting a plan (no submit_plan call).” line in
the conversation and flags the run as having missed its deliverable. The run’s
status deliberately stays completed — that keeps pipeline and ticket state
machines untouched — so read the line, not the status badge.
Approve the plan
Section titled “Approve the plan”From the plan’s row in the conversation, press Approve and run. From Plan Studio’s approval bar, press Approve plan (or Reject beside it; approval is disabled while the graph has a validation error).
Then:
- Control Center compiles the plan into an orchestration and materializes it — the tickets and the run. No model is involved in this step; it is deterministic
- The plan executes as the agent that wrote it. Whether to bring anyone else in is
that agent’s call at run time — it can
delegate_taska step to a better-suited teammate, within the workspace’s delegation depth cap - The plan’s goal becomes the conversation’s goal and the work runs in that same conversation: each step posts what the agent was asked and streams its turn back, so you follow it (and can stop a turn) where you already are
- The goal row in the conversation’s General side panel (under Todos) carries
the run’s progress as
settled/totaland its stop button; Plan Studio shows per-node state on the graph and cancels there too
Keep working without approving
Section titled “Keep working without approving”If you would rather stay in this conversation than approve the plan, the agent can
call exit_plan_mode. That is the only sanctioned exit: it opens a durable
approval request linked to the conversation and returns pending — the
space stays in plan mode and the agent must not act. Once the request is
approved, the agent’s next exit_plan_mode call flips the space from plan
to agent mode and unlocks its mutating tools. A rejection lets it open a fresh
request against a revised plan.
Plan mode in a pipeline step
Section titled “Plan mode in a pipeline step”A promptAgent pipeline step reads its conversation mode from the node config’s
mode extra — extras['mode']: 'plan'. The key is exact-match: any other
spelling, including conversationMode or dispatchMode, is silently ignored and
the step falls back to its default, which is review mode, not chat.