Claude Code Keyboard Shortcuts
Interrupting, rewinding, and switching modes are all one keystroke away — the interface just never mentions it.
Beginner
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.
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.
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.
Enter submits, which trips people up the first time they want to
write more than one line. Three ways around it:
| Method | Works |
|---|---|
\ + Enter | every terminal, no setup |
Shift+Enter | most modern terminals natively |
Ctrl+J | every terminal, no setup |
@ 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.
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.
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).
! 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.
| Shortcut | Does |
|---|---|
Esc | interrupt the current response or tool call |
Esc, Esc | clear the draft, or open the rewind menu on an empty input |
Shift+Tab | cycle permission modes (manual / accept-edits / plan / bypass) |
\+Enter or Ctrl+J | insert a newline instead of submitting |
@ | fuzzy-autocomplete a file or directory reference |
Ctrl+V | paste an image from the clipboard |
Ctrl+B | background the currently running command |
Ctrl+O | toggle the transcript viewer |
! + command | run a shell command directly, no permission check |