@audsiui/pi-statusbar

Minimalist terminal aesthetic suite for Pi — clean startup header, model-border editor, and single-line statusbar

Packages

Package details

extension

Install @audsiui/pi-statusbar from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@audsiui/pi-statusbar
Package
@audsiui/pi-statusbar
Version
1.5.2
Published
Aug 28, 2026
Downloads
601/mo · 23/wk
Author
audsiui
License
MIT
Types
extension
Size
41.7 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@audsiui/pi-statusbar

A Pi extension that replaces the default startup screen, editor chrome, footer, and tool output with a denser, single-line layout.

What it changes

Startup screen — shows a one-line π · ~/path header, and re-renders the built-in [Skills] / [Prompts] / [Extensions] lists as a single grouped card with a 2-row overflow guard (+N more).

Editor — wraps the input box in rounded borders (╭─╮ / ╰─╯). The top border shows the current model, provider, reasoning level (when on), the running tool name ([read], [edit], [bash], …), and the latest turn's throughput (52.4 tok/s). The built-in working… row is hidden to avoid a duplicate spinner.

Footer — collapses the status bar to one line.

  • Left: cwd (with ~), git branch (), staged/modified counts (+N green, ~N yellow), session name.
  • Right (anchored): context-usage bar (▰▰▰▱▱▱ 48.2%/200k), cost, cache read/write + hit rate, tokens in/out, extension statuses.
  • Drops auxiliary metrics from the left when the terminal is too narrow, so the context bar and key info never wrap.

Tool output — replaces the multi-line box that Pi draws for every tool execution (read, bash, edit, write, grep, find, ls, plus any third-party tool) with a single summary line: a colored gutter () for state (running/success/error), the tool name, the target argument, and chars · time. Press Ctrl+O to expand; expanded bodies are wrapped with a thin side rail so they don't blend into chat text.

Screenshot

  π · ~/workspace/pi-extend

  ╭─ Extensions (4) ────────────────────────────────────────────────────────────────╮
  │  • pi-statusbar   • rpiv-ask-user   • rpiv-todo   • pi-goal                     │
  ├─ Skills (4) ────────────────────────────────────────────────────────────────────┤
  │  • codegraph   • council-mode   • keenable-web-search   • pi-subagents          │
  ├─ Prompts (5) ───────────────────────────────────────────────────────────────────┤
  │  • /council   • /parallel-research   • /review-loop   • /pi   • /status         │
  ╰──────────────────────────────────────────────────────────────────────────────────╯

╭─ (anthropic) ○ claude-3-7-sonnet • high ───────────────────────── [ 52.4 tok/s ] ─╮
                                                                                    
╰─────────────────────────────────────────────────────────────────── [ ↵ Send ] ─╯
~/workspace/pi ⑂ main +2 ~5    $0.123 · ⇣1.2M ⇡40k ⚡96.0% · ⇣12k ⇡3.0k · ▰▰▰▱▱▱ 48.2%/200k

  ▎ ▶︎ [read] header.ts · 7,166 chars · 0.1s

Install

# from npm
pi install npm:@audsiui/pi-statusbar

# from GitHub
pi install git:github.com/audsiui/pi-statusbar

# try without saving config
pi -e npm:@audsiui/pi-statusbar

Uninstall

pi remove @audsiui/pi-statusbar

Layout

extensions/
├── index.ts          # lifecycle hooks, wires the four components
├── header.ts         # startup header + resource card re-render
├── editor.ts         # rounded editor with model/tool/tps border
├── footer.ts         # single-line status bar
├── tools.ts          # universal single-line tool output hook
└── utils/
    ├── git.ts        # async git status polling (non-blocking)
    ├── tokens.ts     # cached token + cost aggregation
    └── format.ts     # border layout, token formatting, package-name cleanup

Implementation notes

  • Only state carries semantic color (context bar, git counts, tool gutter/arrow, running spinner); everything else is dim/muted.
  • Git status is polled in the background (GIT_OPTIONAL_LOCKS=0); token usage is cached. Neither blocks the input or render loop.
  • The tool hook covers tools Pi ships with plus any third-party tool that follows the same toolName / render / addChild contract.
  • Only uses Pi's public surface (ExtensionAPI, sessionManager, theme, footerData).

Glyphs

  • (U+26A1) ships with U+FE0E (VS15) to force monochrome text presentation instead of the default color-emoji render; get the same treatment.
  • replaces the common git-branch glyph because (U+2387) is missing from most monospace fonts (DejaVu Sans Mono, Liberation Mono, Ubuntu Mono); is covered by all of them.
  • Arrow semantics are consistent: = into context (input / cache read), = out of context (output / cache write).

License

MIT © audsiui