July 19, 2026
Maxxing Out Your Claude CLI Usage
A casual field guide to getting way more out of Claude Code — plan mode, CLAUDE.md, custom commands, parallel sessions, and the little habits that compound.
So you've installed Claude Code, typed a few prompts, watched it edit some files, and thought "neat." Cool. That's like buying a sports car and only driving it to the mailbox. Let me show you how I actually use this thing day to day — no fluff, just the stuff that made me noticeably faster.
Give it a brain: CLAUDE.md
The single highest-leverage thing you can do takes five minutes. Run /init in your repo and Claude generates a CLAUDE.md file — a little briefing document it reads at the start of every session.
Mine usually covers:
- How to run the dev server, tests, and lint
- Which folders matter (and which are generated junk to ignore)
- Project conventions — "we use motion, not framer-motion", that kind of thing
- Things it keeps getting wrong
That last one is the secret. Every time Claude does something you don't like, don't just correct it in chat — add a line to CLAUDE.md. It's like training a new teammate, except the onboarding doc actually gets read every single morning.
Keep it short though. A 500-line CLAUDE.md is a 500-line prompt you pay for on every message.
Plan first, code second
Hit Shift+Tab to cycle into plan mode. Claude will explore the codebase and propose a plan without touching anything, and only starts editing after you approve.
For one-line fixes, skip it. For anything touching more than a couple of files, plan mode is the difference between "wow" and "why did you rewrite my router." Reviewing a plan takes thirty seconds. Reviewing a surprise 14-file diff takes your whole afternoon.
Related: if you want deeper reasoning on a gnarly problem, literally ask it to think — "think hard about why this race condition happens." Extended thinking is a real thing, not a vibe.
Talk to it like a good bug report
The quality gap between "fix the login bug" and a real prompt is enormous. What actually works:
- Paste the whole error. Stack trace, logs, all of it. Don't summarize.
- Drag screenshots in. Claude reads images. A screenshot of broken UI beats three paragraphs describing it.
- Point at files with
@—@src/components/Navbar.tsxdrops the file right into context. - Run commands inline with
!— type! npm testand the output lands in the conversation for both of you to look at.
Close the loop
Here's the big mindset shift: Claude is dramatically better when it can check its own work. Don't just ask for a change — give it a way to verify:
"Fix the date parsing in getAllBlogs, then run the build and make sure it passes."
Now it writes, runs, reads the failure, fixes, and repeats — while you get coffee. Tests, linters, type checks, even "take a screenshot and look at it" — any feedback loop you hand over turns a one-shot guess into an iteration machine.
Hygiene: /clear, /compact, resume
Context is a finite resource, and stale context makes answers worse.
/clearbetween unrelated tasks. Yesterday's CSS debugging session is not helping today's database migration./compactwhen a long session gets sluggish — it summarizes the conversation and keeps going.claude --continuepicks up your last session;claude --resumelets you choose from previous ones. Closing the terminal isn't losing your work.
And Esc is your friend. See Claude heading in the wrong direction? Interrupt immediately and redirect. Don't politely wait for it to finish being wrong.
Build your own slash commands
Anything you type more than twice deserves to be a command. Drop a markdown file into .claude/commands/ and it becomes a slash command:
<!-- .claude/commands/new-post.md -->
Create a new blog post in src/app/blog/<slug>/content.mdx
with the standard meta export, then add it to the sitemap.
Ask me for the title first.
Now /new-post does the whole dance. I have commands for reviewing diffs, scaffolding components in my house style, and writing release notes. It's automation with zero setup cost.
Stop clicking "allow" all day
If you approve npm test for the eighth time today, put it in your project's .claude/settings.json permissions allowlist. Safe, boring, read-only commands should just run. Save the prompts for the scary stuff.
Hooks go one step further — for example, auto-running Prettier after every file edit, so formatting is simply never a conversation you have.
Go parallel when it counts
Two power moves for bigger sessions:
- Subagents. For a broad question like "where do we handle auth across this monorepo?", Claude can send an agent off to search and report back — the exploration noise stays out of your main context.
- Git worktrees.
git worktree addgives you a second copy of the repo on another branch, so you can run a second Claude session there. One instance fixes a bug while another builds a feature. It genuinely feels like having a small team.
And for scripting: claude -p "your prompt" runs headless — one shot, prints the result, exits. Great for CI, commit hooks, or piping: cat error.log | claude -p "what broke?".
Plug in your tools
MCP (Model Context Protocol) servers let Claude talk to things beyond your filesystem — your database, browser, issue tracker. claude mcp add and suddenly "check the last 5 rows of the users table and tell me why signups look weird" is a one-liner instead of a tab-switching expedition.
Start with one server you'd actually use. You don't need twelve.
The actual secret
None of these tips matter as much as the habit behind them: treat Claude like a very fast junior engineer, not a slot machine. Give it context, give it a plan, give it a way to verify, and correct it in writing so it stays corrected.
Do that, and the ceiling isn't "autocomplete with extra steps." It's shipping things in an afternoon that used to eat a week.
Now go clear your context and build something.