# 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]]