Lint it before you start. Protect it while it runs.
QuotaLint uses Jev to judge task risk, then watches your actual Codex quota locally so the task does not die before validation. It flags vague scope, bundled deliverables, open-ended iteration and missing stopping conditions, hands you the bounded task to paste into Codex, and tells you when to stop expanding and keep the rest for tests.
A free Mac app that reads your current Codex quota on your own machine, lints the task before you spend anything, and protects the finish while it runs. Press ⌥⌘L to open it from anywhere.
macOS 13+ · Apple Silicon · Python 3 and the Codex CLI required
- Scope
- One page, component, or workflow
- Stop
- After the first validated implementation
Illustrative rendering of the QuotaLint window.
Quota tells you how much is left. It does not tell you whether to start.
Knowing you have 22% left does not answer the question actually in front of you. Is this a typo fix, a safe medium implementation, or a multi-step migration that dies halfway through and leaves the branch in pieces? The meter reports the fuel. It says nothing about the distance.
Most of the distance comes from how the task is written. “Redesign the site” has no edge and no finish line, so the agent keeps going until the window runs out. Those are the things QuotaLint flags.
ESLint for expensive coding-agent tasks
It doesn't rewrite your prompt. It points at the parts likely to waste the window and gives a concrete fix for each. A well-bounded task with healthy quota comes back with no lints at all.
- Scope is undefined
Fix: Choose one page, component, workflow, or other bounded surface.
- Several deliverables in one task
Fix: Pick one deliverable for this run and queue the rest.
- Open-ended iteration risk
Fix: Choose one implementation direction and stop after one validated pass.
- No stopping condition
Fix: Add one concrete validation step and tell the agent to stop after it passes.
- Validation surface is broad
Fix: Narrow the change and name one explicit validation path.
- Architecture is unsettled
Fix: Have the agent write a short plan and settle the design before implementing.
- Migration or data risk
Fix: Separate the migration from feature work and validate it on its own.
- Depends on external systems
Fix: Confirm access and availability before the agent starts.
Then it makes a call, using the tightest quota window you have. Every call comes with a recommended task shape (scope, direction, what to preserve, how to validate, when to stop) and a short list of what to defer.
Bounded enough to run against the quota you have.
The intent is clear, but narrow the task before you run it.
The real risk is unsettled design, not size. Plan before code.
Not enough quota to reach a useful stopping point. The lints still apply.
No quota entry. QuotaLint already knows.
The Mac app ships with its own local quota helper. It reads your current Codex windows the moment you open it, and hands that state to the check for you. You describe the task. That is the whole workflow.
Download QuotaLint for Mac- 5-hour remaining %
- Time until the 5-hour reset
- Weekly remaining %
- Time until the weekly reset
- Pressure state
You supply: the task description.
How it works
- 1Lint the task
QuotaLint catches vague scope, bundled deliverables, open-ended iteration, missing stopping conditions and other quota-wasting patterns, then reads them against the window you have left.
- 2Run the bounded version
Copy the quota-safe task packet straight into Codex: your task exactly as written, plus only the constraints the lints justify.
- 3Protect the finish
Protected Run watches your quota locally and warns when it is time to stop expanding scope and keep the rest for validation.
Press Start Protected Run after you paste the task. The Mac app rereads your quota locally once a minute and tells you only when the validation reserve gets tighter. A risky migration reaches “stop expanding” sooner than a clean rename at the same quota, because the reserve follows the task's risk. It does not launch or read Codex, and it is a heuristic, not a quota-cost estimate.
- COMFORTABLERoom for implementation and validation.
- KEEP HEADROOMFinish the current unit before starting another.
- VALIDATION AT RISKStop expanding scope.
- VALIDATION ONLYNo new implementation. Test and checkpoint.
Task-risk judgments are powered by Jev from TypeSafe; the lints, task shape, call, task packet and validation reserve are fixed rules on top of those judgments. QuotaLint is an experimental task-fit assessment — not an exact quota-cost predictor, not an OpenAI feature or endorsed product, not a prompt writer, and not an agent.
What actually leaves your machine
Reading your quota stays on your machine. The check is the one part that does not: it makes a request only after you open QuotaLint, enter a task, and press Check task. Nothing is sent before that.
- The task description you typed
- Coarse quota state
- Repository contents
- File paths
- Codex conversation history
- Credentials
- Diagnostics
- Account identifiers
The task text lives in that window only and is never written to disk. Protected Run and the outcome you record when a run ends stay on your Mac: no task text is stored and nothing about them is sent. Full detail in what this site sends and stores.
Not on a Mac? Run a manual check in your browser.
The web checker runs the same judgment, but a browser cannot read your local Codex state, so you supply the quota numbers yourself — from /status in the Codex CLI.
Finish before your quota does.
Download the free Mac app and lint the task before you spend the quota.
From the maker of Codex Usage.