Claude Code Tips and Tricks You're Missing
Power user tips for Claude Code that most developers never discover. Hooks, context management, model tricks, and more.
Claude Code Tips and Tricks You're Missing
Claude Code is deceptively simple on the surface. You type a prompt, Claude writes code, you accept or reject. But underneath that simplicity is a tool with serious depth — and most developers are using maybe 20% of it.
I've been using Claude Code daily since it launched. Here are the tips that actually changed my workflow, not the obvious stuff you'd find in the docs.
Table of contents
- 1. Use hooks to automate the boring parts
- 2. Permission modes are a spectrum
- 3. Model selection is a power move
- 4. Context management is everything
- 5. The slash command ecosystem
- 6. The .claude directory is your config goldmine
- 7. Multi-file edits: think in systems
- 8. Git integration is smarter than you think
- 9. Error recovery is a skill
- 10. Make it yours
- 11. Customize the statusline
- 12. Skin the terminal itself
- 13. Watch subagents in real time
- 14. Ship faster with keyboard shortcuts
- 15. Use MCP servers to extend Claude
- FAQ
1. Use hooks to automate the boring parts
Hooks are Claude Code's most underused feature. They let you run scripts automatically before or after specific events — pre-commit checks, post-edit formatting, notification triggers.
Example: Auto-format on every file edit
Set up a hook in your .claude/settings.json that runs Prettier after Claude edits any file. No more "can you format that?" prompts. No more style inconsistencies.
Example: Pre-commit security scan
Hook a lightweight secret scanner into the pre-commit flow. Every time Claude tries to commit, it checks for hardcoded API keys, tokens, or credentials. I've caught accidental key leaks three times with this.
Example: Notification on long tasks
If a Claude Code task takes more than 60 seconds, hook a system notification. Walk away, grab coffee, get pinged when it's done.
The hook system is event-driven and scriptable. If you can write a bash script for it, you can hook it.
2. Permission modes are a spectrum
Most people either run Claude Code with full permissions (yolo mode) or default restrictive permissions. Neither is optimal.
The sweet spot: plan mode for architecture, then switch to full permissions for implementation.
When I'm designing a new system, I keep Claude in plan mode. It proposes changes, I review them, we iterate on the approach before any code is written. Once we agree on the plan, I switch to full permissions and let it execute.
This isn't about trust — it's about using the right control level for the right phase of work. You don't need to approve every mkdir during implementation. But you absolutely want to review the database schema before Claude creates 15 migration files.
3. Model selection is a power move
Claude Code lets you switch between models. Most people pick one and forget about it. That's leaving performance on the table.
Haiku — Fast, cheap, good for repetitive tasks. Renaming variables across a codebase, generating boilerplate, writing test fixtures. Don't burn Opus tokens on this.
Sonnet — The daily driver. Feature implementation, debugging, code review. 90% of your work should happen here.
Opus — The architect. System design, complex refactors that touch 20 files, debugging the really weird stuff. Use it when you need deep reasoning, not for everything.
The workflow: Start a feature with Opus to plan the approach. Switch to Sonnet for implementation. Drop to Haiku for cleanup and formatting. Three models, one feature, optimal cost and quality.
If you're running MOLTamp, the telemetry widget shows your current model, token usage, and estimated cost in real time. You can see exactly when switching to a cheaper model makes sense.
4. Context management is everything
Claude Code has a context window. When it fills up, performance degrades — responses get less accurate, it forgets earlier decisions, it starts contradicting itself.
Signs your context is full:
- Claude repeats questions you already answered
- It suggests approaches you explicitly rejected
- Code quality noticeably drops
- It "forgets" the project structure
How to manage it:
Use CLAUDE.md files aggressively. Put your project architecture, coding standards, and key decisions in the CLAUDE.md at your project root. Claude reads this at the start of every session. It's persistent context that doesn't eat your window.
Start new conversations for new tasks. Don't try to do 5 unrelated things in one session. Each conversation gets a fresh context window.
Use compact mode when context is getting long. It summarizes the conversation so far and frees up space.
Structure your prompts to front-load important information. Claude weighs the beginning and end of context more heavily than the middle.
5. The slash command ecosystem
Custom slash commands let you build reusable workflows. Instead of typing the same multi-step prompt every time, package it as a command.
Examples I use daily:
/review— Runs a code review against my team's standards/test— Generates tests for the current file with my preferred patterns/deploy— Runs the full build-test-deploy pipeline with safety checks
Building custom commands takes 5 minutes. The payoff is enormous — you stop explaining the same context repeatedly and start just executing.
6. The .claude directory is your config goldmine
Most developers have a .claude directory and never look inside it. Here's what lives there:
- settings.json — Global and project-level configuration. Hooks, permissions, model preferences.
- commands/ — Custom slash commands.
- agents/ — Agent definitions for multi-agent workflows.
- rules/ — Project rules that Claude follows automatically.
Invest 30 minutes setting up your .claude directory properly. It's the difference between Claude Code being a generic tool and being YOUR tool.
7. Multi-file edits: think in systems
New users ask Claude to edit one file at a time. Power users describe the system change and let Claude figure out which files to touch.
Instead of: "Add a created_at field to the User model"
Try: "Add creation timestamp tracking to users. Update the model, migration, API serializer, and tests."
Claude Code is better at coordinating multi-file changes than you'd expect. It understands dependency chains — model changes cascade to migrations, which cascade to API layers, which cascade to tests. Let it work at the system level.
8. Git integration is smarter than you think
Claude Code doesn't just write code — it understands your git state. Use that.
"What changed since the last commit?" gives you a quick diff review.
"Write a commit message for these changes" generates contextual, conventional-commit-formatted messages.
"Is this branch ready to merge?" triggers a self-review against your project standards.
The git awareness means Claude can reason about your changes in context — not just the current file state, but the delta from your last known-good state.
9. Error recovery is a skill
When Claude Code makes a mistake — and it will — how you recover matters.
Don't: Delete everything and start over.
Do: Tell Claude what went wrong and why. "That approach won't work because our auth middleware expects JWT tokens, not session cookies. Try again with JWT."
Specific error feedback produces better corrections than vague "that's wrong, try again." Claude Code learns from your corrections within the session.
10. Make it yours
The biggest tip is the meta-tip: Claude Code is a platform, not just a tool. The default experience is fine. The customized experience — with your hooks, your commands, your rules, your model preferences, your MOLTamp skin — is transformative.
Spend a weekend setting it up properly. You'll get that time back in the first week.
11. Customize the statusline
Claude Code's statusline is fully scriptable — you can replace the default with your own shell script that prints whatever you want. Current model, token usage, cost, branch name, context percentage, session duration: any of it, in any order, styled any way.
The trick most people miss: a good statusline is ambient. You do not read it actively; your peripheral vision picks it up while you type. A well-designed statusline tells you "context is at 70%, switch to Sonnet, you've spent $0.40 this session" without ever demanding attention.
A full walk-through lives at customizing the MOLTamp statusline. The pattern applies to Claude Code generally, not just MOLTamp.
12. Skin the terminal itself
Claude Code is a CLI agent — how it looks depends on the terminal you host it in. By default, that means monospace green-on-black, same as every other terminal. You can do much better.
MOLTamp treats your Claude Code session as a designed environment. Full skins (not just color themes) restyle the panel layout, vibe deck, statusbar, and terminal chrome. Browse the community skin gallery to see what other developers have built — blueprints, CRT phosphor, LCARS, neon noir, hand-drawn pixel art. Free to install, free to remix, all skinnable with a simple CSS-variable contract.
This is not purely cosmetic. A Claude Code session that looks like something intentional — rather than a generic terminal — changes how often you want to open it. Eight hours a day adds up.
13. Watch subagents in real time
Modern Claude Code workflows spawn subagents. A planner agent writes the spec, an implementer executes it, a reviewer grades the output. The default Claude Code UI shows a flat stream; it is hard to tell which agent is doing what.
The fix: a subagent tracker that groups output by agent, shows live status per agent, and lets you collapse noise from the ones you do not care about right now. MOLTamp ships this as the Agents panel. If you do not use MOLTamp, you can build something equivalent by hooking into Claude Code's tool-use events and rendering them in tmux panes.
For long multi-agent sessions this is the single biggest quality-of-life upgrade. You stop scrolling to figure out "wait, which agent said that?" and start actually following the work.
14. Ship faster with keyboard shortcuts
A short list of Claude Code shortcuts that surprised me how much they saved:
- Shift+Tab — toggle plan/auto-accept modes. The fastest way to shift between "think first" and "just go."
- Esc during streaming — cancel the current response. Handy when Claude has gone down the wrong path and you want to redirect early.
- Up arrow — scroll back through your prompt history. Combined with
!!-style recall, you stop re-typing recurring instructions. - Ctrl+C twice — safe quit. Single Ctrl+C cancels the current command; double exits the session cleanly.
Two minutes spent memorizing these pays off forever.
15. Use MCP servers to extend Claude
Model Context Protocol (MCP) servers plug Claude Code into external systems — databases, file trackers, APIs, internal tools. Most developers never set one up; the ones who do unlock workflows that feel borderline magical.
Examples from my own setup:
- Linear MCP — Claude can read my open issues, close them when I ship the fix, and draft the comment that links to the PR.
- Postgres MCP — run read-only queries against my dev DB without leaving the Claude session. Great for "what does this row look like?" checks during debugging.
- Filesystem MCP — Claude gains awareness of files outside the current project, useful for cross-repo refactors.
Setting one up takes under 10 minutes. MCP is Claude Code's plugin system; if you use Claude Code seriously, you owe it to yourself to try at least one.
FAQ
What is Claude Code?
Claude Code is Anthropic's official command-line agent for software engineering. It runs in your terminal, reads your codebase, edits files, runs tests, and commits changes. Think of it as a pair programmer that lives in a shell.
How do I customize Claude Code?
The three main layers are: CLAUDE.md files (persistent project context), .claude/settings.json (hooks, permissions, model preferences), and custom slash commands in .claude/commands/. For the look-and-feel of the terminal itself, MOLTamp adds a skinnable UI on top.
What are Claude Code hooks?
Hooks are scripts that run automatically on events like file edit, pre-commit, or session start. They live in .claude/settings.json and let you automate formatting, secret scanning, notifications, or any other side effect you want.
Can I skin Claude Code?
Not directly — Claude Code runs inside whatever terminal you launch it from, so its appearance is governed by that terminal. MOLTamp is a skinnable shell built specifically to host Claude Code with full skins (panel layouts, vibe art, custom chrome) — not just color themes. Browse the gallery to see examples.
What's the best model to use in Claude Code?
Sonnet is the best daily driver in most cases. Use Opus for deep architectural work or gnarly debugging. Drop to Haiku for cheap repetitive tasks. Switching models mid-session is a power move most users never adopt.
How do I manage Claude Code's context window?
Keep persistent context in CLAUDE.md files so it does not eat into your session budget. Start new conversations for unrelated tasks. Use compact mode when the window fills up. Put the most important information at the start and end of your prompts — Claude weights those positions more heavily than the middle.
What is vibe coding?
Vibe coding is the practice of designing your development environment so that it is a place you actually enjoy being. The look of your terminal, the sound of your music, the mood of your workspace. For Claude Code users, MOLTamp is the tool most focused on vibe coding as a first-class design goal.
Want more? Browse the MOLTamp blog for deep dives on skinning, widgets, and AI-terminal philosophy, or try MOLTamp if you want your Claude Code sessions to look like something other than a boring green-on-black box.