escape means more than "cancel"

Esc interrupts Claude mid-response or mid-tool-call so you can redirect — whatever work was already done stays done, nothing is thrown away. It's the fastest way to stop a response that's clearly going the wrong direction instead of waiting for it to finish.
Double-tap Esc and the behavior depends on what's in the input box. With text typed, it clears the draft (and saves it to history, so Up recalls it). With an empty box, it opens the rewind menu — a real undo for both the conversation and the code, not just the chat. That's the same checkpoint mechanism behind the /rewind command covered on the usage limits page.
Ctrl+C does similar duty: it interrupts a running operation the same way Esc does; with nothing running, the first press clears the input and a second press exits the session.

cycling modes without typing a command

Shift+Tab cycles permission modes mid-session — default (manual approval), accept-edits, plan mode, and bypass-permissions where it's available — without stopping to type a slash command. The status bar confirms which mode is active, so there's no guessing after a press.

multiline input

A plain Enter submits, which trips people up the first time they want to write more than one line. Three ways around it:
MethodWorks
\ + Enterevery terminal, no setup
Shift+Entermost modern terminals natively
Ctrl+Jevery terminal, no setup
Pasting a whole code block or log directly into the prompt also just works — no escaping needed.

handing Claude files and images without typing a path

Typing @ opens a fuzzy file-path autocomplete — reference a file or an entire directory without waiting for Claude to go search for it first. Referencing a file this way also pulls in any CLAUDE.md in its directory and parent directories automatically.
Paste an image straight from the clipboard with Ctrl+V (Cmd+V on iTerm2, Alt+V on Windows/WSL) — drop in a screenshot of a bug or a design mock instead of describing it in words. Drag-and-drop works the same way.

keeping long or shell work out of your way

Ctrl+B backgrounds a running Bash command mid-flight so Claude can keep responding to you while it finishes (tmux users press it twice, since Ctrl+B is tmux's own prefix key).
A message starting with ! runs as a raw shell command — its output lands in context and Claude responds to it, but the command itself skips Claude's permission check entirely. Good for a quick ! git status you don't need interpreted, just run.
Ctrl+O toggles the transcript viewer, showing exactly which tools ran, when, and with which model — useful when a response feels like a black box and you want the receipts instead of a summary.

quick reference

ShortcutDoes
Escinterrupt the current response or tool call
Esc, Escclear the draft, or open the rewind menu on an empty input
Shift+Tabcycle permission modes (manual / accept-edits / plan / bypass)
\+Enter or Ctrl+Jinsert a newline instead of submitting
@fuzzy-autocomplete a file or directory reference
Ctrl+Vpaste an image from the clipboard
Ctrl+Bbackground the currently running command
Ctrl+Otoggle the transcript viewer
! + commandrun a shell command directly, no permission check

related topics

Claude Code CLI Basics — the commands and permission rules these shortcuts sit on top of.
Claude Code Tips & Tricks — habits that build on these controls, like plan mode and background tasks.
Extended Thinking & Effort Levels — the toggle for how much Claude reasons lives in this same shortcut layer.
Avoiding Usage Limits — what a rewind checkpoint actually restores, and why.

reference

code.claude.com — interactive mode & keyboard shortcuts
code.claude.com — checkpointing & rewind