# Claude Code Interactive Mode ## Permission modes Claude Code has different permission modes controlling what Claude can do without asking. Switch with `Shift+Tab` or `Alt+M`. Set at startup with `--permission-mode <mode>` or as a default in settings. | Mode | What Claude can do without asking | Best for | |------|-----------------------------------|----------| | `default` | Read files | Getting started, sensitive work | | `acceptEdits` | Read and edit files | Iterating on code you're reviewing | | `plan` | Read files (no edits) | Exploring a codebase, planning a refactor | | `auto` | All actions, with background safety checks | Long-running tasks, reducing prompt fatigue | | `bypassPermissions` | All actions, no checks | Isolated containers and VMs only | | `dontAsk` | Only pre-approved tools | Locked-down environments | `auto` only appears in the `Shift+Tab` cycle after passing `--enable-auto-mode` at startup. `dontAsk` is never in the cycle. `bypassPermissions` appears only if started with `--permission-mode bypassPermissions` or `--dangerously-skip-permissions`. See [[Claude Code Auto Mode]] for details on auto mode and [[Claude Code Permissions]] for permission rules. ## Slash commands ### Session ``` /clear Clear conversation history and free up context /compact [focus] Compress context, optionally with a focus instruction /resume Resume or switch to another session /rename [name] Name the current session /branch [name] Branch conversation from a checkpoint (/fork alias) /cost Show total cost and duration of the session /context Visualize context usage (grid) /diff Interactive diff viewer for changes made /copy [N] Copy last (or Nth) response to clipboard /rewind Roll back conversation or code to a checkpoint /export Export conversation transcript ``` ### Configuration ``` /config Open config panel /model [model] Switch model (←→ to adjust effort in picker) /fast [on|off] Toggle fast mode (same model, faster output) /vim Toggle between Vim and Normal editing modes /theme Change color theme /permissions Manage allow & deny tool permission rules /effort [level] Set effort: low, medium, high, xhigh, max, auto (xhigh is the recommended default on Opus 4.7) /color [color] Set prompt-bar color /keybindings Customize keyboard shortcuts /terminal-setup Configure terminal keybindings (for Shift+Enter, Alt+T) ``` ### Tools & Extensibility ``` /init Initialize a CLAUDE.md file with codebase documentation /memory Edit Claude memory files /mcp Show MCP server connection status /hooks Manage hooks /skills List available skills /agents Manage agents /chrome Chrome integration /reload-plugins Hot-reload plugins without restarting /add-dir <path> Add a new working directory ``` ### Special ``` /btw <question> Side question (no context cost) /plan [desc] Enter plan mode (+ auto-start with description) /loop [interval] Schedule a recurring task (default 10m) /voice Enable push-to-talk voice input /doctor Check health of installation /stats Usage streaks & preferences /insights Analyze sessions report /desktop Continue in Desktop app /remote-control Bridge to claude.ai/code (/rc alias) /usage Token breakdown by Skills, Agents, MCPs, and Plugins (plus plan limits & rate status) /schedule Cloud scheduled tasks (persistent) /web-setup Connect GitHub via gh CLI for cloud sessions /remote-env Select default cloud environment for --remote /teleport Pull a web session into terminal (/tp alias) /tasks View background/remote sessions (t to teleport) /ultraplan [desc] Plan in cloud, review in browser /security-review Security analysis of recent changes /code-review [effort] Multi-agent review of recent changes (formerly /simplify; see [[Claude Code Skills]]) /powerup Interactive tutorial: 10 short lessons/demos /help Show help + available commands /feedback Submit feedback (/bug alias) /release-notes View full changelog /stickers Order stickers! 🎉 ``` ### Account ``` /login Switch Anthropic accounts /logout Sign out /upgrade Upgrade to Max for higher rate limits /install-github-app Set up Claude GitHub Actions /migrate-installer Migrate from global npm to local installation /ide Manage IDE integrations and show status /status Show version, model, account, API connectivity, tool statuses ``` ## Side questions with `/btw` `/btw` lets you ask a quick question without polluting conversation history. The question and answer appear in a dismissible overlay and are ephemeral. - Works while Claude is actively processing (runs independently) - Has full visibility into the current conversation context - No tool access: answers only from what is already in context - Single response only, no follow-ups - Low cost: reuses the parent conversation's prompt cache - Dismiss with Space, Enter, or Escape `/btw` is the inverse of a subagent: it sees the full conversation but has no tools, while a subagent has full tools but starts with an empty context. Reference: https://code.claude.com/docs/en/interactive-mode#side-questions-with-btw ## Keyboard shortcuts ### General controls - `Ctrl+C`: cancel current input or generation - `Ctrl+D`: exit session - `Ctrl+L`: clear terminal screen (keeps conversation history) - `Ctrl+O`: toggle verbose output (also shows thinking) - `Ctrl+R`: reverse search command history - `Ctrl+G`: open current prompt in `$EDITOR` - `Ctrl+X Ctrl+E`: open current prompt in `$EDITOR` (chord alternative) - `Ctrl+V` / `Cmd+V` (iTerm2) / `Alt+V` (Windows): paste image from clipboard (appears as `[Image #N]` chip) - `Ctrl+B`: background running tasks (tmux users press twice) - `Ctrl+F`: kill all background agents (press twice within 3s to confirm) - `Ctrl+X Ctrl+K`: kill background agents (chord alternative) - `Ctrl+T`: toggle task list in terminal status area - `Shift+Tab` / `Alt+M`: cycle permission modes (Normal → Auto-Accept → Plan) - `Alt+P`: switch model without clearing prompt - `Alt+T`: toggle extended thinking (run `/terminal-setup` first) - `Alt+O`: toggle fast mode - `Esc Esc`: open checkpoint picker — fork conversation from any previous message - `Left/Right arrows`: cycle through dialog tabs in permission dialogs - `Up/Down arrows`: navigate command history ### Quick commands - `#`: create a memory - `!` prefix: runs bash inline; command + output land in context - `@`: add a file/folder to context - `/` at start: command or skill ### Text editing - `Ctrl+W`: delete word to the left - `Ctrl+K`: delete to end of line - `Ctrl+U`: delete entire line - `Ctrl+Y`: paste deleted text - `Alt+Y` (after `Ctrl+Y`): cycle paste history - `Alt+B` / `Alt+F`: move cursor back/forward one word - `Ctrl+S`: stash current prompt draft (like `git stash` for prompts) ### Multiline input - `\` + Enter: works in all terminals - `Option+Enter`: default on macOS - `Shift+Enter`: works in iTerm2, WezTerm, Ghostty, Kitty. Others: run `/terminal-setup` - `Ctrl+J`: line feed character - Paste mode: paste directly for code blocks, logs ## Session picker The session picker (`/resume` or `claude -r`) supports navigation: - `↑`/`↓`: navigate sessions - `←`/`→`: expand/collapse session details - `P`: preview session transcript - `R`: rename session - `/`: search sessions - `A`: show all projects - `B`: filter to current branch ## Transcript viewer When previewing a session transcript: - `/`: search within transcript - `N` / `Shift+N`: next/previous match - `Ctrl+E`: toggle showing all messages - `Q` / `Esc`: exit transcript ## Plan mode Plan mode restricts Claude to read-only exploration and planning without making changes. Enter via `Shift+Tab` cycle, `/plan`, or `--permission-mode plan`. - `Alt+T`: toggle thinking on/off - `Ctrl+O`: see thinking output (verbose mode) - `/effort`: set effort level (○ low, ◐ medium, ● high, ✦ xhigh, ★ max). Default is medium (85); `xhigh` is the recommended default on [[Claude Opus 4.7]]. `max` shows diminishing returns and tends to overthink — test before adopting broadly. Sticky across sessions. Setting is shareable via settings.json - Say "ULTRATHINK" in a prompt to trigger max effort for a single turn ## Command history - Input history is stored per working directory - Resets when you run `/clear` (previous session can be resumed) - Up/Down arrows to navigate - History expansion (`!`) disabled by default - `Ctrl+R`: reverse search. Type to filter, `Ctrl+R` again to cycle, `Tab`/`Esc` to accept ## Prompt suggestions After Claude responds, a grayed-out suggestion appears based on conversation history and git activity. On the first turn, it uses recent git history. - `Tab`: accept the suggestion - `Enter`: accept and submit - Start typing to dismiss - Disable with: `export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false` or via `/config` ## PR review status When on a branch with an open PR, a clickable PR link appears in the footer with a colored underline: - Green: approved; Yellow: pending; Red: changes requested; Gray: draft; Purple: merged `Cmd+click` (Mac) or `Ctrl+click` (Linux/Windows) to open the PR. Updates every 60 seconds. Requires `gh` CLI. ## Structured questions Claude Code can ask structured questions. Disable with a deny rule: `"deny": ["AskUserQuestion"]` in settings.json. ## References - Interactive mode: https://code.claude.com/docs/en/interactive-mode ## Related - [[Claude Code]] - [[Claude Code CLI Reference]] - [[Claude Code Configuration]]