Hi HN. I built cc-probeline — a status line for Claude Code.
I kept hitting usage limits in the middle of a task and couldn't figure out where the tokens were going.
It turned out all the necessary data was already local: Claude Code logs every session. The problem is, these logs are miles long, and you have to dig to find the actual meaning. So, I created a status line for the bottom of the terminal that parses them.
Here are three things I discovered:
— A single response from me isn't just one request to the model—it's dozens; for long tasks involving subagents, it can be hundreds. Seeing this helped me better understand the costs involved.
— The cache has a lifespan: one hour for the main session and five minutes for subagents. If I stepped away for lunch, the next turn would force a reload of the entire context. I added a timer so I could see exactly how much time was left before the cache expired.
— You can see the cost of subagent operations. With a bit of experience, I can estimate the cost of a given task; if there's a cost overrun, it's a clear sign that a subagent has gone off the rails—like trying to build a spaceship just to handle a simple function.
Two friends with early access have already customized parts of it to their liking—simply by asking Claude to rewrite the code for them. That’s exactly why the code is open source: so you don't have to ask me to make changes; you can just rewrite it yourself.
Open source (MIT license), free, no registration, and no API key required. It installs with a single command and uninstalls with one too—restoring your original status line exactly as it was.
Hi HN. I built cc-probeline — a status line for Claude Code.
I kept hitting usage limits in the middle of a task and couldn't figure out where the tokens were going.
It turned out all the necessary data was already local: Claude Code logs every session. The problem is, these logs are miles long, and you have to dig to find the actual meaning. So, I created a status line for the bottom of the terminal that parses them.
Here are three things I discovered:
— A single response from me isn't just one request to the model—it's dozens; for long tasks involving subagents, it can be hundreds. Seeing this helped me better understand the costs involved.
— The cache has a lifespan: one hour for the main session and five minutes for subagents. If I stepped away for lunch, the next turn would force a reload of the entire context. I added a timer so I could see exactly how much time was left before the cache expired.
— You can see the cost of subagent operations. With a bit of experience, I can estimate the cost of a given task; if there's a cost overrun, it's a clear sign that a subagent has gone off the rails—like trying to build a spaceship just to handle a simple function.
Two friends with early access have already customized parts of it to their liking—simply by asking Claude to rewrite the code for them. That’s exactly why the code is open source: so you don't have to ask me to make changes; you can just rewrite it yourself.
Open source (MIT license), free, no registration, and no API key required. It installs with a single command and uninstalls with one too—restoring your original status line exactly as it was.
Check out the repository to see it in action.