Skip to content

Plan mode

Plan mode lets the agent research and propose an approach before it changes anything. It's the safe way to tackle a large or unfamiliar change: you review the plan, and only then does gdc start editing code or running commands.

What plan mode does

While in plan mode, the agent can:

  • read your files and search the project, and
  • write its plan to a dedicated plans folder.

It cannot edit your code or run shell commands until the plan is approved. When it's ready, it presents the plan and waits for you to approve it — at which point it's free to carry the plan out.

Starting in plan mode

Switch to the plan profile:

/profile plan

Ask for what you want planned. When the agent presents its plan, review it and approve to let it proceed, or keep iterating.

gdc print --profile plan "plan how to add a health-check endpoint"

Plan, then implement, unattended

You can run the whole flow — plan and then carry it out — without a human present by combining plan mode with auto-approval. The agent produces the plan, approves its own transition out of plan mode, and implements it.

gdc print --profile plan --auto-approve \
  "Plan how to add a /metrics endpoint, then implement it."

Auto-approval acts without asking

--auto-approve lets the run take sensitive actions on its own. Use it only in environments you trust — a disposable checkout, container, or CI sandbox. See Permissions.

Why use it

  • Review the approach first. Catch a wrong direction before any code changes.
  • Scope large work. A written plan makes a big task reviewable and reveals hidden steps.
  • Safer automation. Even unattended, the plan is produced explicitly and recorded in the session.

Where plans are written

The agent writes its plan into a .gdc/plans/ folder inside your project. The plan is a normal file you can read, keep, or discard.

Combine with an output style

Pair plan mode with the verbose output style when you want the agent to spell out trade-offs and alternatives it considered:

gdc print --profile plan --output-style verbose \
  "plan the migration to the new configuration format"