Most people use Claude Code like a very smart intern they re-onboard from scratch every single morning. They paste the same context, re-explain the same conventions, and let it re-read the same forty files — then wonder why the bill looks like a car payment. The fix isn’t a cheaper model. It’s building systems that stop paying for the same context twice.
Your CLAUDE.md is the cheapest employee you’ll ever hire
Everything you find yourself re-typing — stack, conventions, “always run the tests,” “never touch the migrations folder” — belongs in a CLAUDE.md file at the project root. It loads once per session as durable context instead of being re-explained in prose every time. This is the single highest-leverage move: a good CLAUDE.md turns ten clarifying exchanges into zero. Keep it tight, though — it’s loaded every session, so bloat there is a recurring cost too. Ruthless and short beats exhaustive.
Turn repeated workflows into commands, not paragraphs
If you run the same multi-step task weekly — a release checklist, a dependency audit, a changelog build — stop describing it each time. Save it as a reusable custom command (a saved prompt template) so the instruction is one line instead of a wall of text. You’re not just saving keystrokes; you’re shrinking the input tokens on every invocation and removing the drift that comes from re-writing the same request slightly differently.
The AI tool stack actually worth paying for
One email a week. The models, tools and moves that matter, stripped of hype and filtered so you don’t have to drink from the firehose. Free, and you can bail anytime.
Run it headless, on a schedule
The real unlock for “recurring” is non-interactive mode. Claude Code can run headless (claude -p "your prompt") so it executes a defined task and exits — which means you can wire it to cron, a CI job, or a scheduled task and have it run at 6am without you sitting there. Nightly dependency checks, a morning triage of new issues, an automated summary of yesterday’s commits: each becomes a small, bounded job with a predictable token cost instead of an open-ended chat that sprawls.
The token math: scope, don’t dump
The thing that quietly bankrupts people is context bloat — every turn re-sends the growing conversation. Three habits keep it flat:
- Point at files, not the repo. Tell it the three files that matter instead of letting it crawl the tree. Use ignore rules to keep noise out.
- End sessions. Long-running chats accumulate history you pay for on every message. Start fresh for unrelated tasks; compact when a session gets long.
- Tier your models. Routine, mechanical steps in a loop don’t need your most expensive model. Reserve the heavy model for the genuinely hard parts.
And gate the dangerous stuff with hooks or permission rules so an automated loop can’t do something expensive — or destructive — unattended. Build the system once, keep its context lean, and the recurring cost stays boring. That’s the whole game.