# Claude Code Interactive mode and terminal experience

> Claude Code shortcuts, Vim mode, history, shell mode, background Bash, terminal configuration, tmux, fullscreen rendering, voice input and caching.

URL: https://docs.passion8.cc/en/docs/claude-code/interactive-terminal
Language: en
Publisher: Passion8

This guide covers the main points from Interactive mode, Keybindings, Terminal config, Fullscreen rendering and Voice dictation. See [commands](https://docs.passion8.cc/en/docs/claude-code/commands) for the command list and [CLI/terminal reference](https://docs.passion8.cc/en/docs/claude-code/cli-terminal-reference) for installation channels, variables, PATH and deep links. Here the focus is efficient terminal operation.

## Keyboard reference

| Action | Default shortcut | Notes |
| --- | --- | --- |
| Interrupt a response | `Esc` or `Ctrl+C` | Does not terminate the entire session |
| Exit | `Ctrl+D` | Exits when input is empty |
| Clear screen | `Ctrl+L` | Does not clear context |
| Search history | `Ctrl+R` | Cross-project history depends on version |
| Expand/collapse transcript | `Ctrl+O` | Inspect fuller context |
| Toggle TODO view | `Ctrl+T` | View tasks |
| Change permission mode | `Shift+Tab` | Cycle modes such as default, plan and auto |
| Planning entry | `Option+P` | Enable Option as Meta on macOS |
| Tasks/background entry | `Option+T` | Background/task views |
| Output/transcript entry | `Option+O` | Reliability depends on terminal support |

Terminals may intercept Option, Shift+Enter, mouse scrolling or system shortcuts. Start troubleshooting with:

```text
/terminal-setup
```

## Input modes

| Input | Purpose | Cache effect |
| --- | --- | --- |
| `/` | Open command menu | Browsing alone does not call the model |
| `@` | Reference files, directories or resources | Loaded content adds context |
| `#` | Quick memory entry | May change the prefix in future sessions |
| `!` | Shell mode, including command output in context | Long output increases future tokens |
| Paste an image | Supply a screenshot | Large images increase request size |
| `/btw` | Ask a side question | Keeps it out of the main conversation |

Use `!` to ask Claude about a shell command's output, but avoid printing long sensitive logs. For monitoring, see `Monitor` in the [tool reference](https://docs.passion8.cc/en/docs/claude-code/tools) and [routines and `/loop`](https://docs.passion8.cc/en/docs/claude-code/routines-scheduling).

## Multiline input

| Method | Suitable for |
| --- | --- |
| `Shift+Enter` | Terminals supporting the combination |
| Paste multiline text | Most terminals |
| Backslash continuation | Short shell-style input |
| External editor | Long prompts or complex plans |

If Shift+Enter is unsupported, adjust iTerm2, Terminal.app, VS Code, Warp or tmux according to the official terminal guide. Test with a short prompt before using it in a production task.

## Vim mode

Select Editor mode in `/config`; the old `/vim` command is no longer the current switch.

| Mode | Behavior |
| --- | --- |
| Insert | Normal text entry |
| Normal | Move with `h/j/k/l`, `w/b/e`, `0/$` and related keys |
| Visual | Select text for deletion, copy or replacement |
| Command | Configured history, submit and cancel actions |

Vim mode changes input editing, not model prompts or cache matching. Resolve conflicts using the active keybindings and terminal interception rules.

## Custom keybindings

Rebind actions when:

- The terminal intercepts a default shortcut.
- Your team wants consistent common actions.
- Vim/tmux conventions conflict with defaults.
- Voice, diff, model picker or task views need easier keys.

Change a few frequent shortcuts first rather than replacing the entire map.

| Risk | Response |
| --- | --- |
| OS/terminal intercepts first | Choose another combination or change terminal settings |
| Vim conflict | Distinguish normal/insert contexts |
| tmux prefix conflict | Avoid `Ctrl+B` or change the prefix |
| Configuration does not apply | Investigate with `/doctor` or safe mode |

## Background Bash and tasks

Run long commands such as development servers, watch tests or log tails in the background.

| Operation | Command or entry |
| --- | --- |
| View background tasks | `/tasks` or `/bashes` |
| Stop a task | `/stop` or task view |
| Continue observing output | Monitor or read saved logs |
| Headless wait ceiling | `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` |

Background output still costs context tokens when read. Filter long watch streams to errors, failures, warnings or the last N lines.

## Fullscreen rendering and mouse support

The terminal rendering mode reduces flicker and improves long-conversation scrolling and mouse interaction.

| Capability | Notes |
| --- | --- |
| Mouse selection | More stable text selection in supported terminals |
| Wheel scrolling | Scroll the conversation |
| Search and review | Easier navigation through long transcripts |
| tmux | Check mouse and alternate-screen settings |
| Native selection | Some terminals require a modifier key |

This local renderer does not change model requests or caches. For rendering problems, switch to the default TUI/classic renderer to identify terminal compatibility issues.

## tmux, themes and notifications

| Need | Recommendation |
| --- | --- |
| Shortcut conflict in tmux | Adjust prefix, mouse and escape-time |
| Completion notification | Terminal bell or Notification hook |
| Theme mismatch | `/theme` or a custom theme |
| Option key does not work | Enable Option as Meta on macOS |
| Slow large-text pastes | Save a temporary file and ask Claude to read its path |

Themes, fullscreen rendering, keybindings and terminal bells affect the local experience. They usually do not change prompts or caches.

## Voice input

Voice dictation is an official-account feature with hold-to-record or tap-to-record prompt input.

| Item | Notes |
| --- | --- |
| Account | Usually requires claude.ai login |
| Permissions | Grant the terminal microphone access on macOS |
| Language | Dictation language is configurable |
| Keybindings | Can be rebound |
| Passion8 | Custom keys/Base URL may make voice unavailable |

Dictation becomes ordinary prompt text, then follows the same conversation and cache rules as typed input.

## Troubleshooting

| Symptom | Check first |
| --- | --- |
| Shortcut does not work | Terminal interception, keybindings, tmux |
| Shift+Enter does not insert a newline | `/terminal-setup` and terminal configuration |
| Unexpected Vim behavior | Editor mode in `/config` |
| Fullscreen flicker or mouse issues | Default renderer, tmux/terminal settings |
| No voice recording permission | OS microphone permission and official authentication |
| High CPU or freeze | [Troubleshooting](https://docs.passion8.cc/en/docs/claude-code/troubleshooting) |

## Cache effects

| Action | Five-minute/one-hour behavior |
| --- | --- |
| History search, themes, shortcuts | Local UI; no cache effect |
| `!` shell mode | Output adds future input tokens |
| Update `CLAUDE.md` or memory | May apply in a new session and rebuild its prefix |
| `/btw` | Keeps a temporary side question out of the main conversation |
| Fullscreen/tmux/bell | Local experience, no cache-key change |
| Voice input | Ordinary message rules after transcription |

See [command cache effects](https://docs.passion8.cc/en/docs/claude-code/command-cache).

## Official references

- [Interactive mode](https://code.claude.com/docs/en/interactive-mode.md)
- [Customize keyboard shortcuts](https://code.claude.com/docs/en/keybindings.md)
- [Configure your terminal](https://code.claude.com/docs/en/terminal-config.md)
- [Fullscreen rendering](https://code.claude.com/docs/en/fullscreen.md)
- [Voice dictation](https://code.claude.com/docs/en/voice-dictation.md)
