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.

Write CLAUDE.md rules for the agent, not for a human

← Tips Context discipline

Write CLAUDE.md rules for the agent, not for a human

A rule like 'keep the code organised sensibly' means nothing to Claude; 'all SQL lives in database/' is actionable. The difference between a that works and one that gets ignored is almost always specificity — plus pruning the rules that have quietly gone stale.

beginner

Most files are written the way you’d brief a colleague. Colleagues fill in the gaps from experience. Claude fills them in from guesswork.

Written for a humanWritten for the
”Keep the code organised sensibly""All SQL lives in database/. One file per table."
"Follow our naming conventions""Table names are singular: Customer, not Customers."
"Write reasonable tests""Every new function in src/ gets a test in tests/ with the same filename."
"Don’t break the build""Run npm run build before telling me you’re done.”

Every left-hand entry sounds like a rule and does nothing. Every right-hand entry can be checked — which is exactly what makes it followable.

The test: could someone who has never seen your tell whether the rule was obeyed? If not, it isn’t a rule yet, it’s a sentiment.

Rules go stale, and stale rules are worse than none

Codebases move. The folder gets renamed, the library gets replaced, the convention changes — and the CLAUDE.md line describing the old world stays exactly where it was, being read with total confidence at the start of every .

This is a common and quiet cause of “why is Claude doing that?”. It’s doing what your file told it, and your file is describing a project that no longer exists.

Re-read the file every so often. Or don’t, and ask instead:

Read CLAUDE.md and check each rule against the actual codebase. Which rules refer to files, folders, or tools that don’t exist any more?

That’s a two-minute job for Claude and a genuinely tedious one for you.

The deletion test

For every paragraph, ask: if I deleted this, would Claude behave differently?

If the answer is no, it’s costing you and attention for nothing. Out. This catches the generic material that accumulates in every CLAUDE.md — explanations of what good code looks like, general principles, notes on how to write a message. Claude already knows all of that. Your file is for what’s true about your project and nowhere else.

A short, specific, current file beats a long, thoughtful, half-stale one. See the project-hygiene tip for the rest of the picture.

Next tip →

Always look at the diff before you accept

Claude is fast and capable — treat it like a brilliant junior. Read what it's about to change before saying yes. Skipping the diff review is the most expensive habit a newcomer can pick up.