Most developers burn AI tokens the same way they used to burn cloud credits: by not paying attention.
Every message you send to an AI coding tool also sends the context with it: the earlier chat history, the files it has read, and the tool output. When usage grows, it's rarely because of one huge prompt. It's because of context piling up quietly in the background.
Here are the habits that cut my usage the most without slowing me down.
1. One task per session
When a task is done, clear the context before you start the next one. A long chat re-sends old history with every turn, so you keep paying for a bug you fixed an hour ago.
In Claude Code, /clear does this. In other tools, just start a new chat.
2. Write a project rules file once
Put your stack, conventions, folder layout, and common commands in a rules file: CLAUDE.md for Claude Code, .cursorrules or project rules for Cursor, or your tool's equivalent.
Keep it short. It loads into every session, so a bloated rules file costs you tokens on every single request.
3. Point to files, don't paste them
Compare these two prompts:
- "Fix the null check in
auth/session.tsaround line 40" - pastes three files "something's wrong with login"
The first one gives the agent a target. The second one invites it to explore.
4. Plan first, then execute
Ask for a short plan and approve it before the agent writes any code. Claude Code has a dedicated plan mode for this. A wrong direction caught at the plan stage costs a few hundred tokens. Caught after implementation, it costs you a full rewrite loop.
5. Match the model to the task
Renames, boilerplate, test scaffolding, and formatting don't need your most expensive model. Switch to a smaller or faster model for routine work, and save the big one for architecture decisions and hard debugging.
6. Give precise errors, not vibes
Paste the exact stack trace, the failing command, and what you expected to happen. "It's broken" makes the agent read through half your repo trying to reproduce the problem.
7. Keep noise out of reach
Build output, lockfiles, generated code, and large fixtures waste context when they get read. Cursor supports .cursorignore. In Claude Code, you can deny reads to specific paths in your settings permissions.
8. Summarize, then reset
When a session gets long but the work isn't finished, ask for a summary of the decisions made and the current state. Then start fresh and paste the summary in. Claude Code's /compact does a version of this for you.
The real point
Token efficiency isn't about being cheap. It's about context hygiene. A clean, focused context is cheaper, and it also gives you better output, because the model isn't sorting through stale or irrelevant information.
What's your biggest token-waster? Let me know in the comments.
Top comments (0)