Claude Code Prompt Best Practices: How to Reduce Tokens and Costs
The techniques we use internally to write efficient prompts in Claude Code: minimal context, structured instructions, skill reuse, and patterns that cut token consumption by up to 60%.
Every token Claude processes costs money and time. If your prompts are verbose, repetitive, or load unnecessary context, you're burning budget for no reason. These are the practices we apply daily to reduce token consumption by up to 60% without sacrificing quality.
1. Minimal context, not maximum context
The most common mistake is giving Claude the entire project "just in case." Claude Code can already read files when it needs them. Instead of pasting 500 lines of code in the prompt, reference the file and let Claude read it on demand.
# Bad: paste 300 lines of code in the prompt
# Good: reference the file
> Review src/components/Header.tsx and add a dark mode toggleGolden rule: If Claude can read the file on its own, don't paste it in the prompt. Every pasted line is tokens processed on every chat interaction.
2. Structured instructions with lists
Claude processes instructions better when they're structured. Instead of writing a long paragraph, separate the steps into a numbered list. This reduces ambiguity and tokens at the same time.
# Bad
> I need you to change the button color to blue, add a check icon, make it responsive, and also fix the padding which is too large
# Good
> In src/components/Button.tsx:
> 1. Change primary color to blue-600
> 2. Add Check icon from lucide-react
> 3. Make responsive (full width on mobile)
> 4. Reduce padding from 24px to 16px
3. Use Skills for repetitive tasks
Skills are reusable instructions that Claude loads only when needed. If you find yourself repeating the same steps in every project (database setup, Stripe configuration, folder structure), convert that flow into a Skill.
- A Skill is triggered only when the prompt matches its description, without consuming tokens from the rest of the chat
- Skill instructions are loaded once and reused on each invocation
- You can include scripts, templates, and reference files within the Skill
- Dramatically reduces the main prompt size by externalizing context
4. Avoid repeating chat context
Claude maintains the conversation history. Don't repeat in every message what you already said. If you need Claude to remember something, reference the previous message instead of rewriting it.
Watch out for accumulated context: Every new message sends the ENTIRE chat history. If the conversation is very long, tokens pile up. When you change topics, open a new chat to reset context.
5. Be explicit about expected output
If Claude doesn't know what format you expect, it will generate extra text explaining its reasoning. If you tell it exactly what you want, it produces only that.
# Bad
> What do you think about this code?
# Good
> Review src/utils/auth.ts and respond only with:
> - List of bugs found (max 5)
> - One line per bug, no additional explanation6. Use /compact for long conversations
Claude Code has a /compact command that summarizes the current chat context. If you're 20 messages in and need to keep working, run /compact to reduce the history to an efficient summary without losing the thread.
Real results
- -60%, Token reduction: Average reduction when applying minimal context and structured prompts vs. verbose prompts.
- -45%, Monthly cost: Savings on API bill by reducing tokens processed per interaction.
- +2x, Response speed: Fewer tokens = faster Claude responses on each interaction.
- +3, Chats per session: With /compact and new chats per topic, you get more out of each session.
Conclusion
Reducing tokens isn't just about cost: it also makes Claude faster and more accurate. Less noise in the prompt = fewer chances Claude gets confused. Apply these 6 practices and you'll notice the difference in the first week.