@parke.dev/pi-dashboard
v0.1.0
Published
Optional header/footer dashboard for the Pi coding agent: cwd, model, context, full session cost, tok/s, git, and PR
Maintainers
Readme
@parke.dev/pi-dashboard
Optional TUI header/footer dashboard for the Pi coding agent.
Default is off. Installing the package does not replace stock UI and starts no pollers. Enable the dashboard and (optionally) pick the bundled theme as two independent opt-ins.
Inspired by Ben Davis / my-pi-setup — this is an independent implementation, not a fork.
Install
pi install npm:@parke.dev/pi-dashboardOpt-in 1 — enable the dashboard
Write ~/.pi/dashboard.json:
{
"enabled": true
}Or set PI_DASHBOARD_ENABLED=true for a single shell.
Settings
Resolves defaults ← ~/.pi/dashboard.json ← environment.
| Field | Env | Default | Notes |
| ---------------- | ---------------------- | ------- | -------------------------------------------------- |
| enabled | PI_DASHBOARD_ENABLED | false | Master switch. Off = stock UI, no timers. |
| header | PI_DASHBOARD_HEADER | true | Replace the TUI header when enabled. |
| footer | PI_DASHBOARD_FOOTER | true | Replace the TUI footer when enabled. |
| showPr | PI_DASHBOARD_SHOW_PR | true | Look up an open PR via gh (cached, silent fail). |
| pollIntervalMs | PI_DASHBOARD_POLL_MS | 3000 | Git/PR poll interval. |
| title | PI_DASHBOARD_TITLE | — | Optional header / window title override. |
Opt-in 2 — select the theme (optional)
The package ships a passive GitHub Dark Default theme. It is discoverable through the pi package manifest but is never auto-selected.
Pick it in ~/.pi/agent/settings.json:
{
"theme": "github-dark-default"
}Or choose it interactively with /theme / /settings after install.
What the footer shows
When enabled, two lines above the editor:
- current working directory · provider/model · thinking level
- compaction-aware context
%/ window · full session cost · live tok/s · git branch · changed file count · optional open PR hyperlink
Full session cost folds assistant messages, tool-result usage (e.g. delivered subagent runs), and compaction / branch-summary usage — the same sources Pi's native footer uses.
Extension status rows from other packages (ctx.ui.setStatus) still render
below those two lines via footerData. With the companion packages installed,
this includes actionable counts for subagents, workflows, and background
terminals, plus the hostname of a live Steel browser session. Their richer
/subagents, /workflows, /ps, and /steel-session UIs remain available.
Design notes
- Uses
@parke.dev/pi-ext-configfor config loading. - Reuses
@parke.dev/pi-gitlibrary helpers for git state only — does not load or register that package's tools. - PR lookup shells out to
gh, is cached per branch, and fails silently. - Startup is non-blocking; polls coalesce; a generation counter drops stale work after reload / session switch.
- External strings are sanitized; widths are ANSI-aware.
- One extension, plain async. No tools, so no skill.
License
MIT
