To reduce Claude Code token usage, control the context you send, keep task scope narrow, clear stale sessions, reduce repeated tool calls, and avoid oversized output. The biggest gains usually come from fewer retries and smaller final patches, not from shaving a few words off the initial prompt. Treat cost as cost per completed task: model usage or subscription pressure, repeated attempts, tool work, review time, and maintenance.
What drives Claude Code token usage
Claude Code consumes tokens as it reads instructions, conversation history, file context, tool results, diffs, errors, and your follow-up messages. Long sessions can accumulate stale context. Broad prompts can cause broad repository scans. Ambiguous requests can cause planning loops and repeated edits.
Anthropic’s Claude Code cost documentation, checked July 14, 2026, recommends reducing context, using /clear between unrelated tasks, monitoring usage, and choosing models intentionally. That advice maps directly to day-to-day development: keep the agent focused on the smallest useful problem and do not let unrelated history ride along.
Input, output, cached, and reasoning tokens
Token reports vary by provider and product surface, but the important buckets are consistent:
- Input tokens: instructions, prompts, file context, tool outputs, and prior conversation.
- Output tokens: generated explanations, code, tool plans, and final responses.
- Cached tokens: repeated stable input that a provider may price or handle differently.
- Reasoning or extended-thinking tokens: additional internal reasoning budget where the model or product exposes it.
Do not assume caching eliminates the cost of messy context. Even when cached content is cheaper, it can still occupy context window and influence the model.
API billing versus subscription usage limits
Separate two concepts that are easy to mix up.
API billing is usage-based. If Claude Code is configured through an API or cloud-provider route, token usage can translate into provider spend, subject to workspace limits, rate limits, and the billing controls of that provider. In that mode, verbose output and repeated edit loops can directly affect the bill.
Subscription usage limits are product limits. Anthropic’s Claude Code cost docs describe seat-based allowances for Claude team and enterprise plans, with session and weekly windows depending on plan and seat tier. Hitting a subscription limit is not the same as receiving a token invoice for each request, and switching models does not necessarily reset a subscription window.
When someone reports “Claude Code is expensive,” first ask which mode they use: subscription, Anthropic API, or a cloud-provider setup.
Keep task scope focused
A focused task lets Claude Code inspect less, edit less, and explain less. Compare these prompts:
Bad: Refactor billing and improve the dashboard.
Better: In the dashboard, make the Billing button open the existing billing
portal flow when a user has a Stripe customer. Do not change pricing UI.
The second prompt narrows the file search, the acceptance criteria, and the output. It also reduces the chance that the agent invents unrelated cleanup.
Reduce unnecessary context
Use /clear when switching topics. Keep pasted logs short. If a test fails, paste the failing assertion and stack section, not the entire CI log. If a task concerns one module, say that.
For larger repositories, provide a short map:
Likely files:
- apps/api/billing.go
- apps/web/src/islands/Dashboard.tsx
Start there. Search wider only if those files are insufficient.
This is not about hiding necessary context. It is about avoiding context that cannot affect the decision.
Avoid repeated tool calls and editing cycles
Repeated searches, failed patches, and full test runs after tiny edits can dominate the task. Ask Claude Code to use targeted checks first:
After editing, run the narrowest relevant test. Run the full suite only if the
changed code touches shared behavior.
If the agent is stuck, pause and ask for a short diagnosis before another edit. A diagnosis step can be cheaper than three blind retries.
Use project instructions effectively
Claude Code supports settings and project guidance. Keep durable project rules short:
- Prefer existing helpers and patterns.
- Keep patches small and readable.
- Do not add dependencies without a clear reason.
- Run targeted tests for changed behavior.
Avoid long philosophical instructions. They increase context and are harder for the model to follow consistently.
Control verbose output and oversized changes
Claude Code can be very helpful, but helpfulness sometimes becomes verbosity. Chat-style detail is useful during discussion, but coding workflows usually benefit from concise decisions, compact patches, and short final summaries. For implementation tasks, ask for compact summaries and a small diff:
Implement the change with the smallest maintainable diff.
Do not add optional abstractions.
Summarize only what changed and which test was run.
This reduces output tokens and review load. It also nudges the agent away from broad rewrites.
Measure cost per completed task
For each meaningful task, record:
- model and effort;
- elapsed time;
- token usage if available;
- number of retries;
- changed files and source LOC;
- whether the result was accepted without cleanup.
Do not compare a failed cheap run against a successful expensive run. Compare successful, accepted changes.
Using an ANTHROPIC_BASE_URL proxy
Claude Code settings are stored in JSON files such as ~/.claude/settings.json, and Anthropic documents an env settings object for environment variables. A proxy that supports Claude-compatible requests can be configured by setting ANTHROPIC_BASE_URL in that environment block.
Example with a placeholder URL:
{
"theme": "light",
"env": {
"ANTHROPIC_BASE_URL": "https://proxy.example.com/YOUR_PROXY_KEY/essential/anthropic"
}
}
Do not publish real proxy keys or provider credentials. Distill.codes uses this one-line configuration pattern in its dashboard and docs so Claude Code can keep using the user’s existing Anthropic access while routing supported generation requests through an optimization layer. Distill.codes is designed as a workflow layer, not a replacement for Claude Code or Anthropic.
Practical checklist
- Use
/clearbetween unrelated tasks. - Keep pasted logs and file context short.
- Define one accepted outcome per run.
- Prefer targeted tests before full suites.
- Ask for the smallest maintainable diff.
- Reserve heavier models or effort for genuinely hard work.
- Measure accepted-task cost, not single-request cost.
- Use separate directories when comparing direct provider runs and proxy runs.
Sources checked July 14, 2026: Claude Code settings, Claude Code cost guidance, and the Distill.codes docs.