Entering plan mode
There are two ways to enter plan mode:/plancommand — type/plan(optionally followed by a task description) in the chat input bar. The session enters plan mode immediately, before the agent’s turn begins. A Plan chip in the empty-session suggestions provides a shortcut.- Agent-initiated — when you explicitly ask the agent to plan first (“plan this out”, “write a plan before coding”), the agent enters plan mode on its own. The agent does not self-initiate for ordinary requests.
What the agent can do
While plan mode is active, the session is read-only with a few exceptions:| Action | Allowed |
|---|---|
| Read files, glob, grep | Yes |
| Spawn explore sub-agents | Yes |
Write files inside plan/ | Yes |
Write files outside plan/ | No |
| Run shell commands | Read-only sandbox |
| MCP tools | Blocked |
| Session-mutating tools | Blocked |
plan/ — for example, plan/2026-06-12-dark-mode.md. Plans follow a structured format with a header (goal, architecture, tech stack), file listings, and bite-sized tasks using checkbox syntax (- [ ]).
Reviewing the plan
When the agent finishes writing the plan, a review panel appears below the message list. The panel shows:- The rendered plan markdown (collapsible)
- A link to open the plan file directly
- Approve plan and Request changes buttons
Implementing the plan
After approval, the agent implements the plan under a fixed discipline:- It works through the tasks in order and follows each step exactly, without skipping that step’s verification.
- As each step finishes, it ticks the checkbox in the plan file (
- [ ]→- [x]). - When the project is a git repository, it commits after each completed task.
- If it hits a blocker — a missing dependency, an unclear instruction, or a verification that keeps failing — it stops and asks you instead of guessing.
- After the last task, it runs the tests and lint for the affected areas, then summarizes what it built.
Running a saved plan
You can also implement a plan that was saved earlier — in another session, or after the original one was closed. Type/plan execute followed by the plan’s path (the run alias works too):
Progress tracking
After you approve a plan — or run one with/plan execute — a progress bar appears below the messages. As the agent completes each step, it ticks the checkbox in the plan file (- [ ] → - [x]), and the bar updates live with a done/total count.
The progress bar shows the plan title (from the first # heading), a fill bar, and a link to open the plan file. Click × to dismiss it when you no longer need it.
Progress persists across session switches and app restarts.
Exiting plan mode
Plan mode ends automatically when you approve a plan. You can also exit manually:- Type
/plan exit(or/plan off,/plan cancel,/plan stop,/plan quit) - Click Exit plan mode on the indicator bar