@juanibiapina/pi-powerbar
v0.6.0
Published
Pi extension that renders a persistent powerline status bar with left/right segments updated via events
Maintainers
Readme
pi-powerbar
A pi extension that renders a persistent powerline-style status bar with left-aligned and right-aligned segments.
Any other pi extension can update segments by emitting a single powerbar:update event — no imports or dependencies required.
Install
pi install npm:@juanibiapina/pi-powerbar⚠️ Load Order:
pi-powerbarmust appear afterpi-extension-settingsand before any segment-emitting extensions in yourpackagesarray in~/.pi/settings.json. It registers settings at load time (requiringpi-extension-settingsto already be loaded), and segment emitters send events thatpi-powerbarmust be ready to receive.
Usage
The powerbar renders a widget with two sides, like tmux:

Producing segments
Any extension can register and update a segment. First, register the segment so it appears in the settings menu:
pi.events.emit("powerbar:register-segment", {
id: "git-branch",
label: "Git Branch",
});Then update it with data:
pi.events.emit("powerbar:update", {
id: "git-branch",
text: "main",
icon: "⎇",
color: "accent",
});To remove a segment:
pi.events.emit("powerbar:update", {
id: "git-branch",
text: undefined,
});Built-in segments
| Segment ID | Description |
|------------|-------------|
| git-branch | Current git branch (refreshes after bash commands) |
| tokens | Cumulative input/output tokens and session cost (e.g. ↑9 ↓270 $0.11) |
| context-usage | Context window usage as a progress bar with percentage |
| provider | Current LLM provider name (e.g. anthropic, openai) |
| model | Current model name and thinking level |
| sub-hourly | Hourly subscription usage from pi-sub-core |
| sub-weekly | Weekly subscription usage from pi-sub-core |
Configuration
Settings are managed through pi-extension-settings and can be changed via the /extension-settings command in pi.
| Setting | Description | Default |
|---------|-------------|---------|
| Left segments | Segments shown on the left side (ordered multi-select menu) | git-branch,tokens,context-usage |
| Right segments | Segments shown on the right side (ordered multi-select menu) | provider,model,sub-hourly,sub-weekly |
| Separator | String drawn between segments on the same side | │ |
| Placement | Where the powerbar appears (belowEditor or aboveEditor) | belowEditor |
| Bar width | Width of progress bars in characters (4–24) | 10 |
The left and right segment settings open an interactive menu where you can toggle segments on/off and reorder them with Shift+↑/↓. All segments registered via powerbar:register-segment appear as options. Segments not listed in either side are ignored.
Development
npm install
npm run check # lint + typecheck
npm run build # compile to dist/
npm run dev # watch modeLicense
MIT
