Ian Provencher
Podcast
Operating Stack

The Claude HUD · VS Code extension

The instrument that watches the session.

A long agent session spends money and fills a context window whether or not anyone is watching, and by the time either one becomes obvious it is already the problem. This is a VS Code extension I built to make both visible while there is still a decision to make: live gauges for the Claude Code session running in that window.

It computes its figures in the editor process from Claude Code's own files, and asks the account's usage endpoint for the limit readings every five minutes, signed in as Claude Code already is. No server, no port, nothing listening.

What it shows

5

Each card below is marked with its scope, because the same number means different things at different scales — how much of a five-hour account window is gone is a different question from how full this one conversation is, and a panel that mixes them teaches you to read neither.

Account-wide

Limits, with pace

The five-hour, weekly and model windows, each as used-now and where it lands at the current pace, plus the weekend’s share of the week — not just how much is spent but whether the rate lands inside the window.

This conversation

Context

How full this conversation’s window is, measured against the real window size, which is the number that decides whether a long session is about to lose its footing.

This conversation

Cache

Time until the prompt cache goes cold, what a cold start would re-send, and how much of each request is served from a warm cache rather than re-sent and re-charged — the single biggest cost lever on a long session.

This conversation

Helpers

Every delegated agent this conversation spawned, running ones first, each opening to its detail and its own transcript, so a fan-out is visible rather than absorbed into one total.

Who is working

Credential profile

Which account is doing the work, with a one-click switch — because the wrong profile spends the wrong budget and nothing else on screen would say so.

Two readouts of one source

This panel and the terminal status line both describe one session, which is the setup that usually produces two half-trusted numbers for the same thing. So they share one source rather than computing twice: the status line keeps a copy of what Claude Code hands it, one file per session, and the panel reads that copy.

Five figures reach the tool's own status-line command and no transcript records them — the cost estimate, its own tally of lines it edited, the percentage used against the real window size, the cache read on the request in flight, and the model variant. The terminal shows them at a glance. The panel takes what it needs from the copy (the cache's expiry, the window size, the cost estimate) and adds the rate limits with their pace and projection, cache reuse and the helpers, as gauges, where a gauge can say more than a number can.

Without that copy the panel still renders what it can work out from the transcripts and marks the rest as missing, and a test proves it.

Terminal keeps

  • BILL
  • EDITS
  • CONTEXT
  • CACHE
  • MODEL

No transcript records them; the line copies them for the panel.

Panel keeps

  • Limits, with pace
  • Context
  • Cache
  • Helpers
  • Credential profile

Everything it can compute for itself.