45 Claude Code Tips: From Basics to Advanced
Here are my tips for getting the most out of Claude Code, including a custom status line script, cutting the system prompt in half, using Gemini CLI as Claude Code's minion, and Claude Code running itself in a container. Also includes the [dx plugin](#tip-44-install-the-dx-plugin).
Overview
45 Claude Code Tips: From Basics to Advanced
Here are my tips for getting the most out of Claude Code, including a custom status line script, cutting the system prompt in half, using Gemini CLI as Claude Code's minion, and Claude Code running itself in a container. Also includes the dx plugin.
📺 Quick demo - See some of these tips in action with a multi-Claude workflow and voice input:
Table of Contents
- Tip 0: Customize your status line
- Tip 1: Learn a few essential slash commands
- Tip 2: Talk to Claude Code with your voice
- Tip 3: Break down large problems into smaller ones
- Tip 4: Using Git and GitHub CLI like a pro
- Tip 5: AI context is like milk; it's best served fresh and condensed!
- Tip 6: Getting output out of your terminal
- Tip 7: Set up terminal aliases for quick access
- Tip 8: Proactively compact your context
- Tip 9: Complete the write-test cycle for autonomous tasks
- Tip 10: Cmd+A and Ctrl+A are your friends
- Tip 11: Use Gemini CLI as a fallback for blocked sites
- Tip 12: Invest in your own workflow
- Tip 13: Search through your conversation history
- Tip 14: Multitasking with terminal tabs
- Tip 15: Slim down the system prompt
- Tip 16: Git worktrees for parallel branch work
- Tip 17: Manual exponential backoff for long-running jobs
- Tip 18: Claude Code as a writing assistant
- Tip 19: Markdown is the s**t
- Tip 20: Use Notion to preserve links when pasting
- Tip 21: Containers for long-running risky tasks
- Tip 22: The best way to get better at using Claude Code is by using it
- Tip 23: Clone/fork and half-clone conversations
- Tip 24: Use realpath to get absolute paths
- Tip 25: Understanding CLAUDE.md vs Skills vs Slash Commands vs Plugins
- Tip 26: Interactive PR reviews
- Tip 27: Claude Code as a research tool
- Tip 28: Mastering different ways of verifying its output
- Tip 29: Claude Code as a DevOps engineer
- Tip 30: Keep CLAUDE.md simple and review it periodically
- Tip 31: Claude Code as the universal interface
- Tip 32: It's all about choosing the right level of abstraction
- Tip 33: Audit your approved commands
- Tip 34: Write lots of tests (and use TDD)
- Tip 35: Be braver in the unknown; iterative problem solving
- Tip 36: Running bash commands and subagents in the background
- Tip 37: The era of personalized software is here
- Tip 38: Navigating and editing your input box
- Tip 39: Spend some time planning, but also prototype quickly
- Tip 40: Simplify overcomplicated code
- Tip 41: Automation of automation
- Tip 42: Share your knowledge and contribute where you can
- Tip 43: Keep learning!
- Tip 44: Install the dx plugin
- Tip 45: Quick setup script
Tip 0: Customize your status line
You can customize the status line at the bottom of Claude Code to show useful info. I set mine up to show the model, current directory, git branch (if any), uncommitted file count, sync status with origin, and a visual progress bar for token usage. It also shows a second line with my last message so I can see what the conversation was about:
Opus 4.5 | 📁claude-code-tips | 🔀main (scripts/context-bar.sh uncommitted, synced 12m ago) | ██░░░░░░░░ 18% of 200k tokens
💬 This is good. I don't think we need to change the documentation as long as we don't say that the default color is orange el...
This is especially helpful for keeping an eye on your context usage and remembering what you were working on. The script also supports 10 color themes (orange, blue, teal, green, lavender, rose, gold, slate, cyan, or gray).

To set this up, you can use this sample script and check the setup instructions.
Tip 1: Learn a few essential slash commands
There are a bunch of built-in slash commands (type / to see them all). Here are a few worth knowing:
/usage
Check your rate limits:
Current session
█████████▌ 19% used
Resets 12:59am (America/Vancouver)
Current week (all models)
█████████████████████▌ 43% used
Resets Feb 3 at 1:59pm (America/Vancouver)
Current week (Sonnet only)
███████████████████▌ 39% used
Resets 8:59am (America/Vancouver)
If you want to watch your usage closely, keep it open in a tab and use Tab then Shift+Tab or ← then → to refresh.
/chrome
Toggle Claude's native browser integration:
> /chrome
Chrome integration enabled
/mcp
Manage MCP (Model Context Protocol) servers:
Manage MCP servers
1 server
❯ 1. playwright ✔ connected · Enter to view details
MCP Config locations (by scope):
• User config (available in all your projects):
• /Users/yk/.claude.json
/stats
View your usage statistics with a GitHub-style activity graph:
Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan
··········································▒█░▓░█░▓▒▒
Mon ·········································▒▒██▓░█▓█░█
·········································░▒█▒▓░█▒█▒█
Wed ········································░▓▒█▓▓░▒▓▒██
········································░▓░█▓▓▓▓█░▒█
Fri ········································▒░░▓▒▒█▓▓▓█
········································▒▒░▓░░▓▒▒░░
Less ░ ▒ ▓ █ More
Favorite model: Opus 4.5 Total tokens: 17.6m
Sessions: 4.1k Longest session: 20h 40m 45s
Active days: 79/80 Longest streak: 75 days
Most active day: Jan 26 Current streak: 74 days
You've used ~24x more tokens than War and Peace
/clear
Clear the conversation and start fresh.
Tip 2: Talk to Claude Code with your voice
I found that you can communicate much faster with your voice than typing with your hands. Using a voice transcription system on your local machine is really helpful for this.
On my Mac, I've tried a few different options:
- superwhisper
- MacWhisper
- Super Voice Assistant (open source, supports Parakeet v2/v3)
You can get more accuracy by using a hosted service, but I found that a local model is strong enough for this purpose. Even when there are mistakes or typos in the transcription, Claude is smart enough to understand what you're trying to say. Sometimes you need to say certain things extra clearly, but overall local models work well enough.
For example, in this screenshot you can see that Claude was able to interpret mistranscribed words like "ExcelElanishMark" and "advast" correctly as "exclamation mark" and "Advanced":

I think the best way to think about this is like you're trying to communicate with your friend. Of course, you can communicate through texts. That might be easier for some people, or emails, right? That's totally fine. That's what most people seem to do with Claude Code. But if you want to communicate faster, why wouldn't you get on a quick phone call? You can just send voice messages. You don't need to literally have a phone call with Claude Code. Just send a bunch of voice messages. It's faster, at least for me, as someone who's practiced the art of speaking a lot over the past number of years. But I think for a majority of people, it's going to be faster too.
A common objection is "what if you're in a room with other people?" I just whisper using earphones - I personally like Apple EarPods (not AirPods). They're affordable, high quality enough, and you just whisper into them quietly. I've done it in front of other people and it works well. In offices, people talk anyway - instead of talking to coworkers, you're talking quietly to your voice transcription system. I don't think there's any problem with that. This method works so well that it even works on a plane. It's loud enough that other people won't hear you, but if you speak close enough to the mic, your local model can still understand what you're saying. (In fact, I'm writing this very paragraph using that method on a flight.)
Update: Claude Code now has a built-in voice mode. I tested it and it works well, but I still personally use a local model because I find it faster.
Tip 3: Break down large problems into smaller ones
This is one of the most important concepts to master. It's exactly the same as traditional software engineering - the best software engineers already know how to do this, and it applies to Claude Code too.
If you find that Claude Code isn't able to one-shot a difficult problem or coding task, ask it to break it down into multiple smaller issues. See if it can solve an individual part of that problem. If it's still too hard, see if it can solve an even smaller sub-problem. Keep going until everything is solvable.
Essentially, instead of going from A to B:

You can go from A to A1 to A2 to A3, then to B:

A good example of this is when I was building my own voice transcription system. I needed to build a system that could let the user select and download a model, take keyboard shortcuts, start transcribing, put the transcribed text at the user's cursor, and wrap all of this in a nice UI. That's a lot. So I broke it down into smaller tasks. First, I created an executable that would just download a model, nothing else. Then I created another one that would just record voice, nothing else. Then another one that would just transcribe pre-recorded audio. I completed them one by one like that before combining them at the end.
Highly related to this: your problem-solving skills and software engineering skills are still highly relevant in the world of agentic coding and Claude Code. It's able to solve a lot of problems on its own, but when you apply your general problem-solving and software engineering skills to it, it becomes a lot more powerful.
Tip 4: Using Git and GitHub CLI like a pro
Just ask Claude to handle your Git and GitHub CLI tasks. This includes committing (so you don't have to write commit messages manually), branching, pulling, and pushing.
I personally allow pull automatically but not push, because push is riskier - it doesn't contaminate the origin if something goes wrong with a pull.
For GitHub CLI (gh), there's a lot you can do. One thing I started doing more after using Claude Code is creating draft PRs. This lets Claude Code handle the PR creation process with low risk - you can review everything before marking it ready for review.
And it turns out, gh is pretty powerful. You can even send arbitrary GraphQL queries through it. For example, you can even find the exact times at which GitHub PR descriptions were edited:
⏺ Bash(gh api graphql -f query='
query {
repository(owner: "...", name: "...") {
pullRequest(number: ...) {
userContentEdits(first: 100) {
nodes { editedAt editor { login } }
}
}
}
}')
⏺ Here's the full edit history for your PR description:
| # | Edited At (UTC) | Editor |
|----|---------------------|--------|
| 1 | 2025-12-01 00:08:34 | ykdojo |
| 2 | 2025-12-01 15:57:21 | ykdojo |
| 3 | 2025-12-01 16:24:33 | ykdojo |
| 4 | 2025-12-01 16:27:00 | ykdojo |
| 5 | 2025-12-04 00:40:02 | ykdojo |
...
Disable commit/PR attribution
By default, Claude Code adds a Co-Authored-By trailer to commits and an attribution footer to PRs. You can disable both by adding this to ~/.claude/settings.json:
{
"attribution": {
"commit": "",
"pr": ""
}
}
Setting both to empty strings removes the attribution entirely. This replaces the older includeCoAuthoredBy setting, which is now deprecated.
Tip 5: AI context is like milk; it's best served fresh and condensed!
When you start a new conversation with Claude Code, it performs the best because it doesn't have all the added complexity of having to process the previous context from earlier parts of the conversation. But as you talk to it longer and longer, the context gets longer and the performance tends to go down.
So it's best to start a new conversation for every new topic, or if the performance starts to go down.
Tip 6: Getting output out of your terminal
Sometimes you