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.

Keep CLAUDE.md clean and your project tidy — why Claude hallucinates without project hygiene

← Tips Context discipline

Keep CLAUDE.md clean and your project tidy — why Claude hallucinates without project hygiene

When Claude starts making things up, the bug is almost always in your , not the . Stale sections, leftover scratch files, orphaned READMEs — Claude reads everything and the noise leaks into its answers.

beginner

When Claude starts confidently citing functions that don’t exist, paths that were deleted last month, or rules from a stack you migrated away from — the bug is rarely in the . It’s in your .

Claude reads everything it can see in your folder: , README, every file you forgot was there, every .bak you left lying around, every commented-out block of old code. It doesn’t know what’s load-bearing and what’s stale. So if you keep three drafts of the same architecture doc, two of which are wrong, Claude is going to confidently cite the wrong one half the time. That’s not — that’s exactly what you’d expect from a careful reader given contradictory inputs.

The fix is project hygiene, and it pays for itself in the first afternoon:

  • CLAUDE.md stays short — a page or so. There’s a real ceiling on how many instructions get followed reliably, and it’s lower than most people’s files. A long file doesn’t mean more rules obeyed; it means the important ones compete with the filler. If you’re onto a third page, you’re explaining things Claude could work out from the code. Cut it. CLAUDE.md is for non-obvious rules and conventions, not project history. (For how to phrase the rules so they’re followable at all, see the write-rules-for-the- tip.)
  • No stale scratch files at the root. scratch.md, notes-from-meeting.md, tmp.py, wip-old.ts — Claude reads them. If they’re not load-bearing, delete them. If they are, put them somewhere structured (e.g. docs/) and reference them from the CLAUDE.md.
  • Old READMEs get rewritten, not appended. If the project changed direction six months ago, the README should say what the project does now. Don’t keep two paragraphs that describe a feature you killed.
  • Dead code gets deleted, not commented out. Modern remembers everything. Commented-out blocks just confuse readers (Claude included) about whether the code is “off” or “removed”.
  • One source of truth per fact. If the command lives in CLAUDE.md, the README, and a tip file, all three will drift apart. Pick one canonical place and link to it from the others.

A useful diagnostic: when Claude says something wrong, ask “where in this folder would someone read that?” and go look. If you find the misleading content, you’ve found the bug. Delete or rewrite it. Next is cleaner.

This isn’t about being tidy for its own sake. It’s about respecting the fact that Claude treats your project as the ground truth. Garbage in, garbage out applies in both directions.

Make the audit somebody else’s job

The tedious part is re-reading your own files looking for things that have quietly gone stale. Hand it over:

Read CLAUDE.md and the README, then check them against the actual codebase. Which statements refer to files, folders, commands, or tools that don’t exist any more?

Two minutes for Claude, and it finds the line about the folder you renamed in March that’s been silently misleading every session since.

also ships a setup-level version of this — /doctor checks the health of your installation and can fix what it finds, including trimming a bloated CLAUDE.md. Worth running every couple of months.

Next tip →

Bad vs. good openers

A useful names the file, the symptom, the repro, and the desired action. Vague prompts get vague results. The five-part shape gives Claude what it needs on the first try.