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.

Never let the session that wrote the code review the code

← Tips Workflow & commands

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.

beginner

At the end of a build, the natural thing to type is “now review what you just wrote.”

You will almost always be told it’s fine.

The that wrote the code is the worst possible reviewer of it. It made a hundred small decisions along the way and holds all of them as settled. Asking it to review is asking it to disagree with itself, using the same reasoning that produced the code in the first place. That’s not review, it’s a second opinion from the same person.

The fix

Open a new session. Give it the diff and nothing else.

Review the uncommitted changes in this . I didn’t write them and I don’t know what they were meant to do. Tell me what looks wrong, risky, or unfinished.

The fresh session has no investment in the decisions. It reads the code as code. Things the building session considered obvious — and therefore never questioned — are exactly what it flags.

has a built-in for this too: /code-review.

Why “I don’t know what they were meant to do” is in the prompt

Deliberately. If you explain the intent, you hand the reviewer the same frame the builder had, and it will tend to evaluate whether the code matches your description rather than whether the code is any good. Withholding the intent forces it to work out what the code actually does — which is where the surprises are.

The rhythm

  1. Build in one session, including running the tests.
  2. , or at least leave the changes uncommitted and visible.
  3. New session. Review the diff cold.
  4. Take the findings back to the building session if you want them fixed in context.

Step 3 is the one people skip, and it’s the one that catches things.

This pairs with the always-review-changes tip — that one is about you reading the diff, this one is about getting a second machine opinion that isn’t compromised.

Next tip →

When Claude goes wrong, rewind — don't try to talk it out of the hole

/rewind restores the code and conversation to an earlier point. It beats arguing with a that has gone off the rails. Critical caveat - rewind does not undo files deleted by ; that needs .