You find out you hit the Claude Code limit the worst way. Mid-task, in the middle of a refactor, when the session stops and tells you to come back in two hours.
The limit itself is fine. Not knowing where you are against it is the problem.
What the board shows
The AI usage widget draws your plan the way you actually think about it. Two rings for Claude Code, one for the current five-hour session and one for the week. Each ring empties as you use it, turns amber under half and red under a fifth, and says when it comes back: “resets in 1h 42m”, “resets Mon 9:00 AM”.
If your plan has a model’s own weekly limit, that shows underneath.
Codex sits beside it in the same widget, read the same way. So when Claude is down to 15% and Codex is at 90%, you can see which one gets the next task.
Where the numbers come from
Claude Code already knows your limits. It hears them from Anthropic every time it runs, and /usage will show them if you stop and ask.
The board’s runner, a small program you set up once with one line, reads what Claude Code last heard and passes the percentages and reset times to your board. The widget says when that was, so a number is never older than it looks. From your sessions, only names, states and percentages leave your computer. Never what you and Claude Code wrote.
Your limits next to the rest of your work
A command answers when you remember to ask. A board answers when you glance at it.
The usage widget lives next to everything else you check in a day. Your Stripe revenue, today’s commits, the sessions still running and the one that is waiting for you to say yes. Start from the Agents template and the usage, sessions and commits are there already. Then ask your agent to add the rest around them.
If you use more than one computer, or run agents on a server, link each one with the same line. Usage and sessions come from all of them.