Skip to content

Keyboard

Shortcuts

Everyone learns Esc. These are the rest — all checked against Claude Code itself, not copied off a blog.

The three to learn first

If you remember nothing else.

  • Esc Esc
    Stop Claude mid-action The moment Claude starts doing something you did not intend.
  • Esc thenEsc Esc thenEsc
    Clear the input box Your half-written prompt has turned into a mess and you want a clean line.
  • Shift +Tab Shift +Tab
    Cycle permission mode Starting an exploration (plan) or letting an agreed plan run (accept edits). On older Windows setups without VT mode, this is Meta+M instead.

Writing the prompt

Composing, searching, pasting.

  • Ctrl +J Ctrl +J
    Start a new line without sending Any prompt longer than one sentence.
  • Ctrl +R Ctrl +R
    Search your prompt history "What did I type last week that worked?" Inside the search, Ctrl+S cycles the scope: this session → this project → everywhere.
  • Ctrl +S Ctrl +S
    Park the half-written prompt You are three sentences into a prompt and need to go check something.
  • Ctrl +G Ctrl +G
    Edit the prompt in your real editor Writing anything long or carefully structured.
  • Ctrl +V Alt +V
    Paste an image Anything visual. Annotate the screenshot first and it works even better. Ctrl+V, not Cmd+V — macOS keeps Cmd+V for its own paste. Windows and WSL use Alt+V. On WSL both Ctrl+V and Alt+V work.
  • Option +T Alt +T
    Toggle thinking for the next turn One hard question in the middle of otherwise simple work.
  • Ctrl +_ Ctrl +_
    Undo in the input box You deleted half a prompt by accident.

Seeing what happened

What Claude did and what it plans to do.

  • Ctrl +O Ctrl +O
    Toggle the full transcript You want to know what it actually did, not the summary.
  • Ctrl +T Ctrl +T
    Toggle the task checklist Any multi-step task, before it gets far.

Running the session

Long jobs, models, the terminal.

  • Ctrl +B Ctrl +B
    Send the running job to the background A long build, test run, or search you do not want to sit and watch.
  • Option +P Alt +P
    Switch model Between tasks — rarely a good idea mid-task.
  • Option +O Alt +O
    Toggle fast mode Straightforward work where you would rather have speed than depth.
  • Ctrl +Z Ctrl +Z
    Step out to the shell without quitting You need the terminal for one command and do not want to lose the session. Terminal-level shortcut (Unix SIGTSTP), not a Claude Code binding. Windows has no direct equivalent.

The keys are the same on both systems — only the modifier's name changes (macOS calls Alt Option). Run /keybindings in any session to see exactly what is bound on your machine.

"Report and stop" — tell Claude where the work ends

← Tips Prompting

"Report and stop" — tell Claude where the work ends

Claude will happily turn a question into a . Add an explicit boundary — "report findings and stop" for questions, "go ahead and implement" for work — and you stop getting changes you didn't ask for.

beginner

You ask “why is this report slow?” and come back to six modified files and a refactored query layer.

Nothing went wrong, exactly. You asked a question that sounded like a complaint, and Claude read it as a job. The fix is to say which one it is.

Two phrases

When you want analysis:

Look into why this is slow. Report what you find and stop — don’t change anything yet.

When you want action:

Go ahead and implement it. Don’t stop to check in unless you hit something that contradicts what I’ve told you.

Almost every is one of those two, and almost nobody says which.

Why beginners hit this harder

Experienced users have internalised a rhythm — investigate, agree, then execute — and signal it without thinking. A newcomer types the way they’d talk to a colleague, where “can you look at the login bug?” obviously means look first. Claude doesn’t share that convention unless you supply it.

The stronger version: bound the scope too

“Stop” handles when. You often also want how far:

Fix the date parsing in import.ts. Don’t refactor anything around it, don’t add tests, don’t tidy the imports — just the date bug.

This is the antidote to the specific failure where a one-line fix arrives as a 200-line “while I was in there” cleanup. The cleanup may even be good. It’s still not what you asked for, and now your diff is unreviewable.

Pair this with () when the work is big enough that you want to see the plan before any of it happens.

Next tip →

Never let the session that wrote the code review the code

Asking the that just built something to check its own work gets you a confident pass. The session carries every assumption it made while building. Open a fresh session, give it the diff and no history, and ask it to find what's wrong.