You're on a flat plan, it's mid-afternoon, and Claude Code tells you you've hit your limit. The usage screen confirms it. What it doesn't tell you is where it went.
If you work on one repo, that's annoying. If you work on four, or you launch subagents, it's the question that matters: which project used it?
So I added a command to Estela, the open-source CLI I'm building: estela quota.
What it shows
- Tokens per project for the current 5-hour window and for this week (Monday to today, in your time zone).
- Input, output, cache read and cache write as separate numbers, because they don't weigh the same.
- This week against the average of your previous 4 weeks over the same stretch of days, so you can tell a heavy week from a normal one.
- Claude Code and Codex shown separately: they draw on different quotas. There's also a --json flag for scripts, and the same breakdown is a card in the Summary tab of the local dashboard (estela web). ## What it refuses to do It never tells you how much you have left. Neither Anthropic nor OpenAI publish their plans' limits, so any "X tokens left" or "you'll run out on Thursday" would be a made-up number. On top of that, anything you use on claude.ai or on another machine counts against the same quota but never touches this disk. The 5-hour window is labeled as an estimate for the same reason: how its start gets rounded isn't public. I'd rather show real consumption with an honest caveat than a precise-looking countdown that's wrong. ## Where the numbers come from Claude Code already writes every session to ~/.claude/projects/ as JSONL, and Codex to ~/.codex/sessions/. Estela reads those files, dedupes repeated turns (Claude Code can write the same turn several times), and maps each session to a project by its working directory. Nothing leaves your machine. Copilot is left out of this view: its local logs don't record reliable token counts. ## Try it npx estela setup, then estela quota. It's free, MIT, zero runtime dependencies. If you've ever burned through a limit and couldn't tell why, I'd like to hear what ate it. And if you find a case where the numbers look wrong, an issue on GitHub helps a lot.
Top comments (0)