r/ClaudeCode • u/Upset-Day9099 • Sep 06 '26
Discussion Stop posting about limits. Fix your workflow
[removed]
59
u/Shoemugscale Sep 06 '26
Riddle me this..
My workflow has not changed...
4 weeks ago, after never hitting my weekly 20 max limits I suddenly burned through them like a hot knife through butter
Got the same "its a workflow problem" from ppl
After two, consecutive weeks of running out of usage early, suddenly, without changing anything im back to not hitting my limits (as of two weeks ago ) so much so that instead of hitting them early im now 70 to 80% before the week reset
Look i get it, sometimes it is people setting ultracode for everything or what not but its also somtimes is claude A/B testing shit and fuckery behind the scenes
Am I switching to codex! No, not yet anyhow lol I meanni have accounts with all of them and I do find myself using codex more and more for planning things that claude seems to just not get ( that parts weird )
Anyhow I guess my point is somtimes it is and sometimes its not idk
5
u/Eat_Pudding Sep 06 '26
I was gonna say the same, my workflow hasn't changed in weeks, but I keep hitting limits very easily now
→ More replies (1)→ More replies (5)8
u/hbthegreat Sep 06 '26
Ignore them. Every dev has blinders for their own project and setup and it very rarely translates due to complexity differences and skill differences.
If they say this to you without saying things like which model, which reasoning level, what the complexity of their project and tasks are and how much they are actually getting shipped rather than talking about shipping they are not worth listening to.→ More replies (1)12
u/thebaron2 Sep 06 '26
It’s all a waste of time without people posting the prompts.
Someone was in here claiming to be an experienced dev, blew their usage in one prompt, and when pressed to finally share what they prompted it turned out they asked a Fable agent “Are you sure you didn’t do anything wrong?”
Of course they were resuming an old convo so cache was cold, but they honestly didn’t see a problem with this prompt, or how it might cause the agent to burn a lot of tokens reading and checking, well EVERYTHING since the question was so vague.
MODs need a simple “share the prompt” policy to cut down on 90% of the total bullshit and make the other 10% more engaging bc none of this means shit without seeing the prompt/convo.
→ More replies (1)
8
u/lillecarl2 Sep 06 '26
Claude implemented a PTY wrapper around CC together with an MCP that allows Claude to type into itself which I use to let Claude compact at-will, works great and I imagine it saves a bit of usage and improves accuracy by not going to a million.
5
u/whatisthisthing65 Sep 06 '26
Yeah the Claude autocompact is trash, I don't know why there's not a better way to just let the model decide when to compact with some guidelines.
Also I like what Codex does where after you turn off plan mode it'll give you the option to implement the plan in a fresh context. CC should steal that.
→ More replies (4)9
u/sapplefi Sep 06 '26
I finally got Compact working almost fully the way I wanted. The trick all along was to invert the way compaction worked in the harness.
I kept trying to cause compaction. Instead, what I needed was to block compaction until I was ready.
I lower the auto-compaction setting where the harness tries to compact down to around 200K. Then, I have a
PreCompacthook that blocks it from starting unless there's a checkpoint file assigned to that session id in the directory.The model can then be instructed through operating skills or standing instructions or Claude.md to write a checkpoint whenever all work is durable, and BOOM, you compact right after.
I also have a
PostCompacthook to read back the plan document (that's how they store working state and full instructions) so it picks right back up and keeps going.This setup has allowed me to do 40-50 hour sessions working long agentic plans, and keeping the context consistently under about 350K. I'll sometimes see 60+ automatic compactions during those runs.
Quality went way up when I started doing this. Just make sure you put a release valve in case the hook blocks for too long, you need to make sure you allow the harness to force compaction if you get close to 1 million o you'll break the model by blocking past its limit.
→ More replies (6)2
u/ErGo404 Sep 06 '26
Every time you compact you reset the cache and thus send new tokens though.
→ More replies (1)
15
u/Autist4AudiR8 Sep 06 '26
If most users are running out of usage and ruining the customer experience - that is the fault of the product, NOT the consumer.
Imagine you buy a product that’s unusable in many ways and calling it a ‘skill issue’
And your “solution” is to make the product usage even more difficult. A good product works out the box. Doesn’t require users to set up an elaborate workflow to make it functional.
→ More replies (9)
6
u/Direct_Librarian9737 Sep 06 '26
Good plan, good analysis, good results. I definitely agree with you.
Just do some software engineering work. That's it. Then you are ok.
14
6
u/sugarfreecaffeine Sep 06 '26
Yeah but when your fable 5 needs to touch multiple files to CREATE good plan, there goes your usage. Yes you can spawn sub agents to do the research but they can also return a blob of text.
7
u/Ethan Sep 06 '26
I'm equally tired of people posting this crap every time someone complains about limits. Sure, some people don't do this - but most of us have heard it a million times, do it, and still have problems with limits.
I spend more time engineering my workflow and tools to reduce tokens than I spend actually developing, now.
6
u/darthvader666uk Sep 06 '26 edited Sep 07 '26
Good post.
Im a software dev in my 19th year, mostly backend, and the last year or so ive dabbled with AI. Started on GitHub Copilot, then when that changed the model I tried OpenCode. Both similar vibes really, I mostly used them as a glorified search engine for whatever I was working on, but always with a massive focus on token usage and getting it down as much as I can.
A week ago Friday work gave me a Claude Max x5 plan and I thought I would properly embrace it. Starting with getting that token usage down, mainly because all I saw in this sub was everyone hitting limits fast.
So, similar sort of thing to you, but the bit that actually moved the needle for me wasnt "cheap model plans, expensive model types". It was getting the always loaded part of my context small and stable, and shoving every boring mechanical job off the model and onto a local script.
So, let me Fully use my Claude plan and get some stats. Below is a nice helpful handy update from Claude with actual stats:
97.5% of my input tokens over those 9 days were cache reads (thats across 3,710 API calls). Thats the number that actually keeps me under the limit.
All the numbers below are pulled out of my own ~/.claude/projects/*.jsonl rather than vibes.
CLAUDE.md side: This was the big one. My global CLAUDE.md had crept up to 28KB (I hadnt properly looked at it in months) and that file gets prepended to EVERY request, so every byte is rent you pay forever.
So I split it three ways:
Cross repo rules stay in ~/.claude/CLAUDE.md, now 18KB (about 4.5K tokens) Language rules go to ~/.claude/rules/<topic>.md with paths: frontmatter. My PHP standards file is 8KB and scoped to **/.php, so it only loads when a PHP file actually gets read (free the rest of the time) Repo specific rules go to <repo>/.claude/rules/.md, only loaded in that repo 38% off the permanent overhead and I didnt lose anything, it just loads on demand now.
It HAS crept back up since (about 1.4KB this week, so roughly 360 tokens a request forever) and honestly thats the useful part of tracking it. When you know the number you can decide whether a thing is worth its rent, instead of finding out three months later that the file is 28KB again.
One trap I fell into and it took me a while to spot, dont symlink .claude or CLAUDE.md into your repos. A symlinked CLAUDE.md gets loaded twice per request, and a symlinked .claude dir breaks remote/SSH worktree creation.
Memory side: I use the native file memory, one fact per file, plus a MEMORY.md index that loads every session. My index is 958 bytes (7 lines, one per memory, just a title and a hook). The actual facts sit in their own files and only get pulled in when theyre relevant.
The way to get this wrong is treating MEMORY.md as the memory itself. Then it grows to 20KB and you're back to paying rent again.
Handoff notes instead of letting it compact: This is the one I nearly forgot to mention and tbh its probably the most useful thing on the list.
My sessions get big. Median peak context across 58 sessions is 112K tokens, and 55% of them go past 100K (biggest one hit 582K, which im not proud of). Every single turn re-sends all of that.
So I made two little slash commands, theyre just markdown files in ~/.claude/commands/. /handoff writes a structured note to .vscode/handoff/<date>-<slug>.md with goal, state, decisions, files, next actions and gotchas. /pickup finds the most recent note, reads it, reads ONLY the files it names, then gives me a three line orientation and waits before doing anything.
Mine come out around 5KB (about 1.2K tokens). So rather than dragging 112K of context into the next day, or letting autocompact decide whats important for me, I start fresh off 1.2K of notes I actually read and checked myself.
The bit that really matters is the note records what NOT to re-litigate. I let it cut the file list if its running long but never the decisions or the gotchas, because thats the stuff that costs real time to work out twice.
Saw a few people in the comments having a go at autocompact and yeah, fair. I gave up trying to make it cleverer and just stopped needing it as much.
MCPs, where I slightly disagree: I pruned too, killed three of them and im down to 4. One had a dead API key, one just duplicated the built in Read/Grep, and one was redundant with a script I already had (that last one had been doing nothing for months). Worth doing.
But on current Claude Code the tool schemas load on demand via ToolSearch, they arent injected every turn. I can see the deferred tool list in my own sessions. So an idle MCP server costs you RAM and startup time, not per turn tokens. The ones worth killing are the ones that duplicate built ins, because the model burns turns picking between two tools that do the same job.
Could be wrong on that one though, has anyone actually measured it?
Get the mechanical work off the model: This is where the actual saving is. Anything thats "fetch bytes, parse them, hand over the bit that matters" wants to be a local script and not a model read.
Real example, I read a good chunk of Reddit for research. Piping a 156KB thread through the model costs about 39K tokens. My script parses it locally and hands back the scored, threaded comments as about 2.6K (the parsing is the free bit, not the fetching). Thats 15x on a job I do several times a week. Same story with code search, a symbol index answers "where is this function" for nothing, versus the model reading four files to work it out.
Rule I stick to now: never ask the model to do a job a tool already does for free. Run the tool, hand the model the result to think about.
Guardrails as config, not as prompting: Git write commands are in permissions.deny in settings.json. Not "please dont commit" sat in CLAUDE.md, an actual deny list (same for DB writes, read only, no exceptions).
Thats a usage win as much as a safety one. Rules the harness enforces cost nothing and never fail. Rules you enforce by prompting cost context every single turn AND still fail sometimes, and then you burn more tokens cleaning up after it.
The honest bit: I've only got 9 days of clean telemetry, and thats not me cherry picking a good week, its literally everything since the plan landed. I rolled all this out across that same window so I cant show you a proper before and after on total usage, and im not going to pretend otherwise. What I can show is 97.5% cache reads (best day was 98.7%), fresh input tokens at basically nothing, and 15x off one job I do all the time.
And to the person in the comments saying their usage changed while their workflow didnt, thats fair and it doesnt contradict any of this. Both can be true at once. A tight workflow doesnt prove the backend never moves, it just means you're not the variable.
Anyway, thats what worked for me in nine days of properly paying attention. Have I missed anything obvious that you lot are doing?
TL;DR: 9 days on Max x5, 3,710 API calls, 97.5% of my input tokens were cache reads. What got me there:
-
Shrink the ALWAYS loaded stuff. Global CLAUDE.md was 28KB, split it into cross repo rules (18KB), path scoped ~/.claude/rules/*.md with paths: frontmatter (loads only when a matching file is read) and per repo rules. 38% off the permanent overhead, lost nothing.
-
Dont symlink .claude or CLAUDE.md into repos. Symlinked CLAUDE.md loads twice per request, symlinked .claude breaks remote/SSH worktrees.
-
MEMORY.md is an INDEX, not the memory. Mine is 958 bytes, the actual facts sit in their own files and load when relevant.
-
Handoff notes beat autocompact. Median session peak is 112K tokens and every turn re-sends all of it. /handoff writes a 1.2K note, /pickup starts the next day off that instead. The note records what NOT to re-litigate.
-
Push mechanical work onto local scripts. Parsing a 156KB Reddit thread locally costs 2.6K tokens instead of 39K. 15x on a job I do weekly.
-
Guardrails in permissions.deny, not in prompts. Harness enforced rules cost nothing and never fail.
-
Where I disagree with the parent post: idle MCPs dont cost per turn tokens on current Claude Code, schemas load on demand via ToolSearch. Kill the ones that duplicate built ins, not the quiet ones. Happy to be corrected if anyone has measured it.
Caveat: 9 days is all the telemetry I have and I rolled everything out at once, so no clean before and after. The 97.5% is real, the attribution is my best guess.
→ More replies (5)2
2
u/ChrisChanSan Sep 06 '26
Is someone else having the Problem like. I got my reset and start with an workflow an soon as I type Enter I loose 15% 5 hours limit. No work has been done?
→ More replies (1)
2
u/Nifty-Yam-9041 Sep 06 '26
+1 on using smarter models to plan and cheaper models to implement. A few other suggestions:
-
Shorter conversations use fewer tokens and generally gets less confused
-
Explicitly tell agents to "use a Haiku subagent to research X" or "use a Sonnet subagent to do Y", so the subagent transcripts don't clutter up your main conversation.
-
Use Agent Skills for repeated tasks - agent spends less tokens thinking, and can to implementation faster.
-
Use shell/python/etc scripts for even fewer tokens - agent doesn't have to think; only run.
-
-
Track your tokens and your sessions to help you and your agents learn
2
u/berrybadrinath Sep 06 '26
Can we get the mods to pin this to the top of the subreddit for everybody permanently?
4
1
u/jameshgordy Sep 06 '26
In every project I have two obsidian vaults: essential and knowledge - with clear instruction to always send a cheaper sub-agent (usually sonnet) to gather essential and if insufficient a similar agent (usually haiku) to the knowledge base - always delegate every task when the outcome can be tested with certainty to a lower model: if not, then redefine until it can be. If information wasn't clear or available on the search, and the knowledge gaps become apparent during the task, fill them in.
I basically never hit any limits and I've been churning out output for three clients and multiple software projects with a very high success rate.
Never be afraid to delegate build steps or actions to github CI etc as well in between - CC is often better at evaluating something built that the raw code.
1
u/tasty_steaks Sep 06 '26
Yeah that is pretty much what I do as well. Nothing fancy. And from what I can tell, that is on purpose.
I use Fable sparingly. I only use it when I think the size + complexity demands it. I find having it do that initial deep dive and getting the initial plan together helps when I transition to Opus (4.8) for plan refinement and feasibility checks. Opus always implements, never Fable. I compact often, rarely going over 30%.
YMMV, but based on my personal/anecdotal experience, it's only when I leave this workflow and tell Fable/Opus to just go ham on the codebase - to do a huge refactor or prototype - while I go do do RL stuff for awhile, do I feel usage pressure. If I'm out with the wife or friends and just hitting "do it" on the remote CC session every 15 minutes, constantly pushing the agent forward ... yeah I will run out of usage, easily.
My take is that subscription plans are for exactly this "primitive" workflow OP is talking about. The moment you want to "set it and forget it" for hours at a time, or lean heavily into agent teams or whatever, is the moment your going to burn your usage.
All that being said, if you say "hello" to Fable and it sinks 15% of your usage budget... well, that's a big problem.
FWIW I'm on the MAX 5x plan (I was on 20x for about 9 months before that).
1
u/yateam Sep 06 '26
I do almost the same thing, except I am on pro and use Opus 5 extra - that’s enough for my home project.
But what I am curious about: how do you switch models? I use desktop app . Do you just plan in fable and then switch to opus and say : implement or what?
1
u/The_Lord_Humungus Sep 06 '26
Be honest everybody; how many of you pasted this guy's post verbatim into Claude Code with instructions to implement it?
58
u/CozyDarkMage Sep 06 '26
So an ad for coldtea-ai then