Skip to main content
Plan mode puts the session into a read-only state so the agent can explore the codebase and draft an implementation plan without making any changes. You review the plan, approve or request changes, and only then does the agent start coding.

Entering plan mode

There are two ways to enter plan mode:
  • /plan command — 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.
/plan add dark mode support to the settings page

What the agent can do

While plan mode is active, the session is read-only with a few exceptions:
ActionAllowed
Read files, glob, grepYes
Spawn explore sub-agentsYes
Write files inside plan/Yes
Write files outside plan/No
Run shell commandsRead-only sandbox
MCP toolsBlocked
Session-mutating toolsBlocked
Sub-agents spawned during plan mode inherit the same restrictions. The agent explores the project, then saves a markdown plan to 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
Approve exits plan mode and the agent begins implementing the approved plan. Request changes opens a feedback text area. Describe what should change and submit — the agent revises the plan file and asks for approval again.

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):
/plan execute plan/2026-06-12-dark-mode.md
This runs in a normal read-write session — it does not enter plan mode. The agent reads the plan, reviews it critically, and raises any gaps with you before starting, then implements it with the same discipline as an approved plan. The path is relative to the project root; if the file is missing or outside the project, CTOR shows a notification and starts no turn.

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
Exiting cancels any pending approval request and restores full read-write access.