# How to Use Plan Mode in Claude Code (and When)

> Plan mode makes Claude Code research and propose before editing. Enter it with Shift+Tab or /plan, review the plan, then approve — or keep planning.

- Canonical: https://guides-ai.pages.dev/guides/claude-code-plan-mode/
- Plate 02.02 · Topic: First steps (https://guides-ai.pages.dev/topics/first-steps/)
- Published: 10 Jun 2026 · Updated: 06 Sept 2026 · 3 min read
- Source site: guides-ai — https://guides-ai.pages.dev/

Plan mode tells Claude to research and propose changes without making them. It reads files and
runs read-only shell commands to explore, then writes a plan — and edits stay blocked until you
approve it. For anything touching more than a couple of files it is the highest-value habit
there is: correcting a plan is free, correcting a bad refactor is not.

## 1. Enter plan mode

```text
/plan
```

What it does: enters plan mode for a single prompt — the fastest route mid-session.

Press `Shift+Tab` to cycle into it for the rest of the session (the status bar shows
`⏸ plan mode on`), and press it again to leave without approving anything. To start there:

```bash
claude --permission-mode plan
```

What it does: launches the session in plan mode, before it can touch a file.

## 2. Let it explore

Give it the goal, not the steps. Plan mode is where "read the code first" actually happens,
because it can't skip ahead to editing.

```text
We need rate limiting on the login route. Read how sessions and middleware work
in this repo, then plan it. Don't write code yet.
```

What it does: sets a goal with a boundary, so the plan reflects your codebase rather than a
tutorial.

## 3. Approve — or don't

When the plan arrives you get options, including **No, keep planning**, which stays in plan mode
and lets you say what to change. That option is the whole point: use it. Approving exits plan
mode and switches the session to the permission mode that approve option describes, so Claude
starts editing immediately. To plan again, cycle back with `Shift+Tab` or prefix your next
prompt with `/plan`.

## 4. Make it the default where it matters

```json
{ "permissions": { "defaultMode": "plan" } }
```

What it does: starts every terminal session in this project in plan mode. Put it in
`.claude/settings.json`. The VS Code extension ignores project settings for the starting mode —
set `claudeCode.initialPermissionMode` there instead.

## Verify it worked

Ask it to edit a file while the plan is unapproved. It should decline. If it edits anyway, the
session has bypass permissions available, which disables plan mode's blocks — see
[permissions](/guides/claude-code-permissions/).

Use it for refactors, new features and unfamiliar code; skip it for one-line fixes.
[Plan mode](/glossary/#plan-mode) pairs with
[working across a whole repo safely](/guides/claude-code-whole-codebase-safely/) and a good
[CLAUDE.md](/guides/create-claude-md-project-memory/), which gives the plan better inputs.

Source: [Choose a permission mode](https://code.claude.com/docs/en/permission-modes).
