@mrwyck/pi-minimalist-hud0.2.2
Compact two-line telemetry HUD for Pi: tokens, context, cost, quota, speed
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-minimalist-hud
A compact, two-line telemetry footer for Pi. Everything you need while a session is running โ cache rate, context fill, cost, token speed, workspace, model, skills, MCP tools โ without stealing vertical space.
Everything fits in ~90 columns, so at typical terminal widths nothing is dropped.
๐ข 88% cache โ ๐ฆ 42.1k/200k (21%) โ ๐งญ PLAN โ โก 62 tok/s
๐ pi-hud (main) โ ๐ฐ $0.42 โ ๐ค claude-sonnet-4-5 โ ๐ 12m โ ๐งฉ ponytail โ ๐ 3
Items whose priority is too low to fit the current terminal width are dropped automatically, so the HUD degrades gracefully instead of wrapping.
Install
pi install npm:@mrwyck/pi-minimalist-hud
From a local checkout:
pi --extension ./index.ts
Only one custom footer can be active. Disable other footer extensions first, e.g.
@firstpick/pi-extension-git-footer-status.
What each item means
| Item | Meaning |
|---|---|
๐ข |
Cache-hit rate โ the share of prompt tokens the provider served from cache. 88% cache is the number that actually varies; raw uncached/total counts are available in /usage. |
๐ฆ |
Context-window fill for the active model. Turns yellow past 60% and red past 85%, and gains a ! at 90% โ the signal to /compact. |
๐ฐ |
Accumulated session cost, summed from per-message usage reported by the provider. |
๐งญ |
PLAN / VIBE. Reads @narumitw/pi-plan-mode state, falling back to that extension's live status. Falls back to VIBE whenever no signal is present (extension missing, or installed but idle before its first status update). |
โก |
Rolling output tokens/second over a 2-second window, from streamed deltas. |
๐ง |
Active thinking level. |
๐ |
Project directory name plus the current Git branch โ not the full path, which does not change and does not fit. |
๐ |
Elapsed session time. |
๐งฉ |
Skills whose SKILL.md was read through Pi's read tool in the active session. Hidden when none have been loaded. |
๐ |
Count of active MCP tools, inferred from tool names. |
Development
npm install
npm test # node:test, no test framework
npm run typecheck
Pure logic lives in telemetry.ts and is covered by telemetry.test.ts. index.ts only wires Pi events to that logic and renders the footer.
Limitations
- The
๐count is a heuristic over tool names; a non-MCP tool whose name containsmcpcan be counted. It appears only when the count is non-zero. - Context fill is derived from the last request's token count, so it reads slightly low mid-stream and corrects as soon as the response's usage arrives.
- Provider quota windows are deliberately not shown: every provider exposes them differently, and a row that is meaningless or wrong on half the providers costs more attention than it earns. Use
/usageor the provider's own dashboard when you need it. - Token speed is estimated from
chars / 4until the provider reports real output tokens for the message. SKILLreflects skills read in the current session, not every skill installed.
Releasing
Publishing is automated by .github/workflows/publish.yml on version tags, using npm trusted publishing (OIDC โ no NPM_TOKEN secret to rotate):
npm version 0.2.0 --no-git-tag-version
git commit -am "chore: release 0.2.0"
git tag v0.2.0
git push && git push --tags
One-time setup: on npmjs.com, open the package โ Settings โ Trusted Publisher โ GitHub Actions, and set repository andrraa/pi-minimalist-hud, workflow publish.yml. The workflow refuses to publish if the tag and package.json version disagree.
License
MIT