The same Claude Code yields completely different results depending on who uses it.
Some people burn through their 5-hour limit quickly, while others find it ample.
--> The difference lies in settings and habits.
⭐️ Here are 12 proper Claude Code tips. ⭐️

All commands and prompts are included so you can copy-paste them directly.
--> It's a bit long to read all at once... How about bookmarking it first???
⚠️ Before starting.. Check your version ⚠️
Most features mentioned in this article were released in the last few months. If your version is old, the commands won't work.
Check with claude --version in the terminal, and if it's low, just run claude update.
The commands in this article are based on v2.1.302 as of October 18.
1. Set Different Efforts for Each Sub-agent
Effort determines how deeply Claude thinks before answering. Options include low, medium, high, xhigh, and max, though available steps vary slightly by model.
Many people set it to Max or XHigh unconditionally, assuming higher is better.
But that's not always true.
When building the same app for comparison, Max took 79 minutes, while other efforts took 16 minutes.
The results were nearly identical. You're just spending more time and tokens.
Here's what I've summarized from my experience:
--> (Core) 🔥 If you can write detailed prompts, the final result is often similar whether you use low or max. 🔥
--> For brainstorming, low or medium actually worked better.
However, difficult designs, tricky bugs, and important reviews sometimes require higher effort.
The key isn't "always low."
Since Oct 7.. Specify effort when calling sub-agents!
Starting with the Oct 7 update (v2.1.292), main Claude Code can specify effort when calling sub-agents.
Now you can instruct like this:
Divide the current task into three stages and proceed with sub-agents.
1. File location finding and data organization with low effort
2. Reviewing pros/cons of modification direction with medium effort
3. Bug-finding review of final code with high effort
Show which effort was actually given to each sub-agent,
and bring only conclusions and evidence file paths back to the main agent.

If it's annoying to say every time, save agents as files.
--> For example, save as light-research.md in the project's .claude/agents/ folder.
name: light-research
description: Light research only for finding relevant files and evidence locations
model: haiku
effort: low
Both methods—specifying per call (prompt above) and fixing via file—work!
2. Context Management and Preventing Token Waste
🤪 The reason Claude Code suddenly gets dumb is mostly context.
Context is the workspace Claude remembers at once. Conversations, read files, and command results all accumulate here.
--> Nowadays, Claude Code has 1M (1 million tokens) context as 'default'.
The problem is filling this 1M completely.
This isn't just Claude; it's a common limitation of all LLMs like Codex.
⭐️ Tip: Set autocompact to 500~700k ⭐️
So I pull forward the auto-compaction threshold.
/autocompact 600k
This reduces the window size used for auto-compaction to 600k tokens.
Before filling 1M, Claude summarizes conversations and frees space automatically.
(To revert to default, type `/autocompact auto`.)

⚠️ Second thing to watch out for: Cache expiration ⚠️
If you use one session for a long time, definitely check this.
Claude Code resends the entire previous conversation with each request. It's fast and cheap because of caching—already processed parts aren't recalculated.
But this cache isn't permanent.
- Pro or Max subscription (within plan usage): Main conversation cache 1 hour
- API key or additional usage credits: 5 minutes
- Sub-agents: 5 minutes even with subscription
I once saw ~852k uncached on my screen. In this state, sending just one line "continue" requires reprocessing ~850k tokens without cache. Usage can drop significantly at once.

Common cases where cache breaks:
- Resuming a huge session after a long break
- Switching models mid-session (cache is separate per model)
- Changing connected MCP tool configurations
Countermeasures are simple:
- Clean up before leaving. Use `/compact` while cache is alive, or start fresh with `/clear`.
- Update to the latest version. From v2.1.299, conversations over 200k tokens are automatically compressed after ~54 minutes idle, before the 1-hour cache expires. You can disable this in
/configunder Idle compaction.)

**
3. Clean Up Old Guidelines with /doctor prompt-audit
CLAUDE.md copied from old advice. Rules added one by one every time I made a mistake.
Most were written for older models.
New models follow instructions much better than old ones.
⚠️ So rules that needed emphasis like "Must!!" "Never!!" in the past might now be overly active. ⚠️
Rules conflicting with current code or each other have also accumulated.
Now you can check with one command.
1/doctor prompt-audit
Feature added in late September update (v2.1.283).
What does it check?
- CLAUDE.md and CLAUDE.local.md, AGENTS.md in project and parent folders
- ~/.claude/CLAUDE.md (my personal guidelines applied to all projects)
- Rules, skills, custom commands, sub-agent definitions, output styles inside .claude/
It reports but doesn't suggest fixes for plugin skills and agents.
Criteria are based on the model you're currently using. It finds outdated prompt patterns for that model and creates a report with fix suggestions.
(It doesn't read files that might contain keys, like settings files or .mcp.json.)

4. Fix the Work Environment When Claude Repeats Mistakes
⛏️ When AI is messing up again. Struggling with one issue for hours. ⛏️
If you're correcting the same thing for the third time, it's not the model's fault. It's the work environment's fault.
I've been using this method since Claude Sonnet 3.7 for over a year. Roughly explained..
--> Have the AI analyze the session where it failed, then reflect causes in project guidelines and verification methods.
⭐️ Do it like this! "Analyze mistakes using Session ID" ⭐️
1. Type `/status` in the session where mistakes repeated to get the Session ID. Copy it.
2. Open a new Claude Code session (Codex works too) and paste this:
1"<Session ID>" → Find points where this Claude Code session failed twice or more.23Find things I pointed out but it kept getting wrong, and bottlenecks.45Categorize why they happened (wrong assumptions, missing context, code structure, lack of tests)67and propose the smallest fix only for CLAUDE.md, .claude/rules, skills,8hooks, or tests to prevent recurrence.

3. Review suggestions and apply only good ones.
4. Verify effectiveness. Retry previously failed requests and see if it works now.
⚠️ Don't pile everything into CLAUDE.md. ⚠️
The longer it gets, the more it eats context and rules conflict!!!
- Project-wide rules in CLAUDE.md
- Rules for specific folders/files in .claude/rules/ or CLAUDE.md within that folder
- Repetitive procedures as Skills
- Absolute rules via Hooks and permissions (Tip #10)
- Same bug recurring via regression tests
Occasionally clean up accumulated rules with Tip #3 `/doctor prompt-audit`. Tip #4 builds, Tip #3 cleans.

**
5. Maintain Work Memory Across Sessions with Claude-Mem
Claude Code forgets conversations when a session ends.
**"Why did we do that last time?"
"How did we fix that error?"**
You have to explain again in every new session.
The only Claude Code plugin I've consistently used for a year solves this.
--> claude-mem.
⭐️ It has over 100k GitHub stars. ⭐️
How is it different from basic memory?
Claude Code has basic Auto Memory. Here's the difference:
Basic Auto Memory summarizes content Claude deems important and learnings from the project into notes. Viewable via /memory, no installation needed.
claude-mem automatically records what tasks were done in previous sessions, how errors were resolved, and why decisions were made. It retrieves necessary records in the next session.
My screen showed up to 87% token savings.

Installation is one line in terminal:
1npx claude-mem install
Or install as a plugin inside Claude Code:
1/plugin marketplace add thedotmack/claude-mem2/plugin install claude-mem
❌ Not recommended if ❌
- You primarily use Codex
- You already have another memory plugin or custom handover system
Adding overlapping tools increases complexity and cost.
If you only use Claude Code, it's still strongly recommended.
6. See Model, Effort, Context, and Usage at a Glance with Statusline
While using Claude Code, you constantly wonder:
- Is this session Opus? Sonnet? Haiku?
- What effort is set?
- How full is the context?
- How much of the 5-hour and weekly limits remain?
🔥 Statusline keeps this visible at the bottom of the terminal. 🔥
Creating it is easy. Describe desired shape after `/statusline`, and Claude generates and applies the script.
My shared 5 designs
I previously shared 5 copy-paste statusline prompts.
1. Minimal: Model, effort, project, context in one line
2. Pastel Blocks: Pastel highlight blocks suitable for dark terminals
3. Nord Powerline: Smooth arrow boundaries between segments
4. Limit Dot Bar: For Pro/Max. 5-hour and 7-day usage, time to reset as dot bars
5. Vivid Gauge: Lime badge and diagonal gauge. Includes context token count
Full prompts are in original posts. Copy-paste and Claude builds it immediately.

1. Minimal: https://x.com/lucian__03/status/2103173295118098750
2. Pastel Blocks: https://x.com/lucian__03/status/2103173396075065594
3. Nord Powerline: https://x.com/lucian__03/status/2103173518573916178
4. Limit Dot Bar: https://x.com/lucian__03/status/2103173612832444536
5. Vivid Gauge: https://x.com/lucian__03/status/2103173754218258607

7. Make Claude Execute and Verify Results Directly
Claude says "Implementation complete!" But running it fails. Buttons don't click, screens break, or nothing appears.
Tests pass but apps fail more often than expected.
So make Claude launch and interact with the app itself. Commands exist for this:
- /run: Actually runs the project app and manipulates it to verify changes.
- /verify: Builds and runs the app to confirm changed functionality works. Doesn't substitute with tests/type checks.
- /run-skill-generator: Saves how to run this project (commands, env vars, prep steps) as a skill. Do this first for complex projects.
- /verify saves the verified method as a project skill (.claude/skills/verify/) for reuse.
Usage flow:

1. Implement feature, check tests/build first
2. Run app with /run
3. Click/input for web, sample input/output for CLI
4. Re-confirm goal met with /verify
5. Fix and rerun if failed. Keep actual command results/screenshots as evidence
8. Separate Coding AI and Reviewing AI
You don't see typos in your own writing. Same for AI.
Coding session is biased towards "this is correct."
⭐️ So use a reviewer with fresh context. ⭐️
- /code-review: Finds bugs/accuracy issues in changed code, PRs, branches, paths.
- Set intensity like /code-review high (low to max).
(Default reports only; add --fix to auto-correct.)
- /security-review: Checks security issues (auth, input validation, info exposure) in diff between branch and remote default.
- /simplify: Cleans duplicates/inefficiencies/complexity. Not for bug finding (/code-review handles that).
Recommended order:

1. Clean code with /simplify
2. Verify functionality with /verify (Tip #7)
3. Find bugs with /code-review
4. Add /security-review if touching login/payment/API keys/PII
No need to run all 4 every time.
⚠️ Small fixes may suffice with just /code-review. ⚠️
For deeper review, use /code-review ultra (same as /ultrareview).
(Cloud-based deep review; Pro/Max get 3 free tries.)
9. Define Design and Completion Criteria Before Complex Coding
For complex tasks, give Claude scope and completion criteria first, not long coding instructions.
Without this, Claude expands scope arbitrarily.
⚠️ It modifies unnecessary files and does unrequested work. ⚠️
Using Plan Mode:
Press Shift+Tab to show plan mode on, or type /plan. Can append task like /plan fix login bug.
(Plan Mode reads files and plans only. Code changes after approval.)
Flow: Explore → Plan → Approve → Implement → Verify.
Skip planning for typo fixes/one-line changes. Official docs rule: If change describable in one sentence, skip plan.

10. Enforce Critical Rules Automatically with Hooks
Even if CLAUDE.md says "Don't touch this file," Claude sometimes does.
🔥 CLAUDE.md is guidance; Hooks are enforcement. 🔥
Top 3 most used:
- PreToolUse: Just before file edit/command execution. Blocks protected file edits/dangerous commands.
- PostToolUse: Right after execution. Auto-formats/lints edited files.
- Stop: When Claude tries to finish. Prevents stopping if tests incomplete.
Example: Block prod config edits

Ask Claude to create hooks:
--> "Create PreToolUse hook blocking config/production.env edits."
Good use cases:

- Auto-run formatter on code file edits (PostToolUse)
- Require confirmation before touching critical folders (PreToolUse)
- Block stop if tests not run (Stop)
- Block dangerous commands (PreToolUse + Bash)
11. Run Multiple Claude Sessions Simultaneously with Git Worktree
What happens if two Claude windows work in same folder?
🚫 They conflict editing same files. (Very painful..) 🚫
Worktree splits repo into separate folders/branches per task.
Claude Code does this with one command:
Run in two terminals:
claude --worktree feature-authclaude --worktree feature-dashboard
Short -w works too.
Creates .claude/worktrees/feature-auth/ and works on worktree-feature-auth branch.
--> ⭐️ Two sessions don't touch each other's files. ⭐️
Notes:

New worktrees start from remote default (main), not current branch.
Pass PR number like claude --worktree "#1234" to start from PR.
Prompts to keep/delete leftover work when ending session.
Cautions:
- Worktree isolates files/branches only. Shared local DB/ports/deploy targets/API accounts cause conflicts.
- Merge conflicts possible if same files edited.
- Define interfaces or sequence tightly coupled tasks.
- Each session consumes separate usage. Parallel ≠ token saving.
12. Repeat Verification Until Goal Met with /goal
Claude stops after one turn. May say "mostly fixed" despite 3 failing tests.
- Goal keeps Claude working until completion criteria met (since v2.1.139).
- /goal shows current goal/status.
- /goal clear releases goal/stops.
How it works...
After each turn, small fast model evaluates if conditions met. If not, Claude continues next turn.
Include verification method in goal (e.g., "output test command/results"). Judge model needs proof.

Difference from /loop or Stop hook?
--> Goal starts next turn immediately upon failure. Stops when judge confirms success.
/loop repeats task at intervals (e.g., /loop 5m check deploy).
Stop hook runs custom script to check conditions at turn end.

Combine for best results:
1. Define scope/criteria with /plan (Tip #9)
2. Split tasks with claude -w (Tip #11)
3. Format/block via Hooks (Tip #10)
4. Iterate until criteria met with /goal (Tip #12)
5. Confirm with /run and /verify (Tip #7)
6. Review with fresh context via /code-review (Tip #8)

Summary
1. Vary effort per task. Delegate to sub-agents.
2. Don't fill context completely. Watch cache expiry.
3. Clean old CLAUDE.md with /doctor prompt-audit.
4. Fix environment, not model, for repeated mistakes.
5. Cross-session memory via claude-mem.
6. Monitor model/effort/context/limits via statusline.
7. Verify with /run and /verify, not just "done" claims.
8. Separate coder and reviewer AIs.
9. Plan complex tasks first.
10. Enforce critical rules with Hooks.
11. Parallelize with worktree.
12. Persist until success with /goal.
Claude Code updates rapidly. Will share new tips as they emerge.

Bookmark if helpful, and share with friends using Claude Code.
Thanks for reading!
Previous single posts referenced:
Sub-agent effort: https://x.com/lucian__03/status/2108194703782916166
Effort, Max isn't always best: https://x.com/lucian__03/status/2104641991279874134
autocompact 500~700k: https://x.com/lucian__03/status/2108589402914177236
852k uncached & cache expiry: https://x.com/lucian__03/status/2106396357527531800
/doctor prompt-audit: https://x.com/lucian__03/status/2104560017407869028
AI self-improvement (Harness update): https://x.com/lucian__03/status/2081761475560157477
claude-mem: https://x.com/lucian__03/status/2108997241864159442
5 statusline designs: https://x.com/lucian__03/status/2103173166973718537





