Claude Code productivity tricks that nobody talks about
Everyone knows the basics: write code, run tests, fix bugs. But Claude Code has a layer of hidden productivity patterns that change how you work.
Here are the ones I use every day.
1. Ask Claude to explain before it codes
By default, Claude jumps straight into implementation. This burns context on code you might not want.
Instead:
Before you write any code, explain your approach in 3 bullet points.
I'll tell you if it's right before you start.
This catches misunderstandings in 50 tokens instead of 2000.
2. Use --output-format stream-json for automation
If you're running Claude Code in a script:
claude --output-format stream-json --print "refactor auth.js" \
| jq -r 'select(.type=="text") | .text'
This gives you machine-readable output you can pipe into your CI pipeline.
3. Pin your tech stack in CLAUDE.md
Stop telling Claude your stack every session. Put it in CLAUDE.md once:
## Tech Stack
- Node.js 22, Express 5
- PostgreSQL with Prisma ORM
- Vitest for testing (NOT Jest)
- Tailwind CSS (NOT Bootstrap)
## Conventions
- Use async/await (NOT .then chains)
- Always add JSDoc to exported functions
- Tests go in __tests__/ folder
Now every session starts with full context. No repetition.
4. The "rubber duck" pattern
Before asking Claude to fix a bug, describe it:
I have a bug where X happens when Y. My current theory is Z.
Do you see any flaws in my theory before we look at code?
Often Claude spots the issue in your description, saving a full file read.
5. Chain commands with semicolons
claude "add error handling to fetchUser" ; \
claude "write tests for fetchUser" ; \
claude "update the JSDoc for fetchUser"
Each runs sequentially. Useful for known multi-step tasks.
6. Use --allowedTools to restrict scope
claude --allowedTools "Read,Write" "update the README"
This prevents Claude from running shell commands or making git commits when you just want a docs update. Safer for documentation-only tasks.
7. Create project-specific aliases
In your .bashrc or .zshrc:
alias cc-test='claude "run the test suite and fix any failures"'
alias cc-review='claude "review the last 3 commits and flag any issues"'
alias cc-docs='claude "update README based on recent changes"'
Now cc-test is a single command that runs your full TDD loop.
8. Rate limits kill flow — proxy them out
If you hit rate limits mid-session (common on intensive days), your context disappears.
Fix:
export ANTHROPIC_BASE_URL=https://simplylouie.com
This routes Claude Code through SimplyLouie — a $2/month proxy with no rate limits. Your workflow never stops.
# Verify it's working
curl https://simplylouie.com/health
# → {"status":"ok"}
9. Ask for "confidence levels"
When Claude proposes a fix:
How confident are you in this fix on a scale of 1-10?
What would make you more confident?
Low confidence = look at the code yourself. High confidence = ship it.
10. End every session with a handoff note
Write a 5-bullet summary of what we changed today.
Include: what we fixed, what we deferred, and what the next logical step is.
Save it to SESSION-NOTES.md.
Next session, you have instant context restoration.
The pattern across all of these: reduce friction at every step. Less repetition, less interruption, more flow.
Which of these do you already use? What am I missing? Drop it in the comments.
Rate limits interrupting your Claude Code flow? SimplyLouie is a $2/month Claude proxy — set ANTHROPIC_BASE_URL and never hit a limit mid-session again. 7-day free trial.
Top comments (0)