pi-echo-statusline

Configurable status line rendered from one shell command's output

Packages

Package details

extension

Install pi-echo-statusline from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-echo-statusline
Package
pi-echo-statusline
Version
0.1.0
Published
Aug 13, 2026
Downloads
147/mo · 5/wk
Author
hegdesumanth.dev
License
unknown
Types
extension
Size
5.8 KB
Dependencies
1 dependency · 1 peer
Pi manifest JSON
{
  "extensions": [
    "."
  ]
}

Security note

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

README

pi-echo-statusline

A configurable status line via one shell command.

Design note

Today, a custom status line on Pi means writing a whole extension (see Pi's own official status-line.ts example). This package makes it a config file instead. Refreshed on session_start and after every turn_end — not on a fixed wall-clock timer, a deliberate scope simplification (no timer to clean up on session_shutdown, no risk of a runaway interval). The command receives a JSON payload on stdin (cwd, model, session_id, context usage) using only fields actually available from ExtensionContext. Output is rendered as-is (first line, trimmed) via ctx.ui.setStatus().

Live-verified against a real completed turn, not just type-checked: both refreshes fired with correct data — session_start reported {tokens: 0, ...} before any turn, and the post-turn_end refresh correctly reported {tokens: 2979, ...} matching the actual usage from that real turn, with the correct live model id (gpt-5.5) and context window (272000) flowing through.

Usage

Configure in .pi/echo/statusline.json (project) or ~/.pi/agent/echo/statusline.json (global; project wins outright — a status line is one choice, not additive):

{ "command": "./scripts/statusline.sh", "timeout": 5000 }

/statusline shows the configured command and refreshes it immediately.