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.

Editing CLAUDE.md mid-session does nothing — you have to restart

← Tips Context discipline

Editing CLAUDE.md mid-session does nothing — you have to restart

is read once, when the starts. Adding a rule to it in the middle of a conversation has no effect until you start a new session — which is why people conclude CLAUDE.md "doesn't work" when it does.

beginner

Here’s a trap that makes people give up on entirely.

Claude does something you don’t like. You do the right thing — you open CLAUDE.md and add a rule saying “don’t do that”. You go back to the . Claude does it again. You conclude CLAUDE.md is decorative and stop maintaining it.

CLAUDE.md is read once, at session start. The session you’re in is running on the version that existed when it began. Your edit is real, it’s just not loaded.

What to do instead

Add the rule, then start a new session. The rule takes effect there.

If you need the behaviour to stop right now, in the session you’re already in, say so in the — that works immediately:

From now on in this session, don’t touch files under migrations/ without asking me first.

Then put the same rule in CLAUDE.md so the next session starts with it. Prompt for now, file for next time.

Why this is worth knowing on day one

The whole loop of “when Claude does something wrong, add a line to CLAUDE.md” depends on knowing this. Without it, the loop appears not to work, and the natural conclusion is that the file is ignored. It isn’t — it’s just loaded at a moment you weren’t thinking about.

A quick way to confirm your file is being read at all: start a fresh session and ask.

What rules are you working under from CLAUDE.md right now?

Next tip →

What a real CLAUDE.md looks like (worked example)

A worked example of a -level , distilled from 's official guidance, Karpathy's viral behavioral rules, HumanLayer's "under 60 lines" guide, and the awesome-claude- curated index. Each section is annotated with why it earns its slot.