{"slug": "which-project-ate-my-claude-code-quota", "title": "Which project ate my Claude Code quota?", "summary": "A developer added a \"quota\" command to Estela, an open-source CLI, that breaks down Claude Code and Codex token usage per project for the current 5-hour window and the week, reading local JSONL session logs from ~/.claude/projects/ and ~/.codex/sessions/ without sending data off the machine. The tool deliberately refuses to estimate remaining quota, since Anthropic and OpenAI do not publish plan limits, and instead compares the current week against the average of the previous four weeks. It is free, MIT-licensed, and installable via npx estela setup.", "body_md": "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.\n\nIf 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?\n\nSo I added a command to [Estela](https://github.com/jdleonruiz/estela-cli), the open-source CLI I'm building: **estela quota**.\n\n## \n  \n  \n  What it shows\n\n- Tokens per project for the **current 5-hour window** and for**this week** (Monday to today, in your time zone).\n- Input, output, cache read and cache write as separate numbers, because they don't weigh the same.\n- 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.\n- Claude Code and Codex shown separately: they draw on different quotas.\nThere's also a **--json** flag for scripts, and the same breakdown is a card in the Summary tab of the local dashboard (**estela web** ).\n## What it refuses to do\nIt never tells you how much you have left.\nNeither 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.\nThe 5-hour window is labeled as an estimate for the same reason: how its start gets rounded isn't public.\nI'd rather show real consumption with an honest caveat than a precise-looking countdown that's wrong.\n## Where the numbers come from\nClaude 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.\nCopilot is left out of this view: its local logs don't record reliable token counts.\n## Try it**npx estela setup** , then**estela quota** .\nIt'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](https://github.com/jdleonruiz/estela-cli) helps a lot.", "url": "https://wpnews.pro/news/which-project-ate-my-claude-code-quota", "canonical_source": "https://dev.to/jdevleon/which-project-ate-my-claude-code-quota-1p2a", "published_at": "2026-10-15 15:15:03+00:00", "updated_at": "2026-10-15 15:22:11.514235+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "large-language-models", "ai-agents"], "entities": ["Estela", "Claude Code", "Codex", "Anthropic", "OpenAI", "GitHub", "Copilot"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/which-project-ate-my-claude-code-quota", "markdown": "https://wpnews.pro/news/which-project-ate-my-claude-code-quota.md", "text": "https://wpnews.pro/news/which-project-ate-my-claude-code-quota.txt", "jsonld": "https://wpnews.pro/news/which-project-ate-my-claude-code-quota.jsonld"}}