@narumitw/pi-statusline

Pi extension that replaces the footer with an information-rich statusline.

Packages

Package details

extension

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

$ pi install npm:@narumitw/pi-statusline
Package
@narumitw/pi-statusline
Version
0.1.34
Published
May 24, 2026
Downloads
3,741/mo · 2,447/wk
Author
narumitw
License
MIT
Types
extension
Size
27.6 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./src/statusline.ts"
  ]
}

Security note

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

README

✨ pi-statusline — Rich Statusline for the Pi Coding Agent

npm Pi extension License: MIT

@narumitw/pi-statusline is a native Pi coding agent extension that replaces Pi's footer with a beautiful, information-rich terminal statusline.

Use it to monitor model selection, thinking level, git branch, working directory, active tools, context usage, token totals, estimated cost, time, and statuses from other Pi extensions.

✨ Features

  • Replaces the default Pi footer with a compact preset-based statusline.
  • Shows model, thinking level, git branch, project directory, active tool, context usage, tokens, cost, and clock.
  • Displays compact statuses published through Pi's generic extension status API.
  • Preserves extension-provided status icons when the status text starts with one.
  • Warns when the same extension package is installed from multiple sources.
  • Uses emoji-labeled segments for readability in both classic and Tokyo Night presets.
  • Adapts to terminal width and truncates safely.
  • Requires no configuration, with optional preset selection through PI_STATUSLINE_PRESET.

📦 Install

pi install npm:@narumitw/pi-statusline

Try without installing permanently:

pi -e npm:@narumitw/pi-statusline

Try this package locally from the repository root:

pi -e ./extensions/pi-statusline

🎨 Presets

pi-statusline supports presets through the PI_STATUSLINE_PRESET environment variable:

PI_STATUSLINE_PRESET=tokyo-night pi
PI_STATUSLINE_PRESET=classic pi

Supported presets:

  • tokyo-night — the default, inspired by the Starship Tokyo Night preset, using ░▒▓ / powerline blocks and the Tokyo Night color ramp.
  • classic — a compact Pi-themed statusline with left-aligned separators.

Unset or invalid values fall back to tokyo-night. Both presets keep the same emoji-labeled information and preserve extension-provided status icons.

👀 What it shows

The default tokyo-night statusline uses a Starship-inspired ░▒▓ / powerline layout and includes:

  • π brand marker.
  • 🤖 current model.
  • 🧠 thinking level.
  • 📁 current project directory.
  • 🌿 git branch.
  • ⚙ active or last tool.
  • 🪟 context usage percentage.
  • 🔢 token totals.
  • 💸 estimated cost.
  • 🕒 clock.

Statuses from other extensions appear on their own compact line below the main statusline and use each preset's separator.

pi-statusline is extension-agnostic: it consumes Pi's generic extension status API and does not import or depend on status-producing extensions. If an extension wants a custom icon, it should include that icon at the start of its status text, for example ctx.ui.setStatus("goal", "🎯 active"). Statuses without a leading icon use the generic 🔌 icon.

Examples:

  • 🔌 active for a plain status such as goal: active.
  • 🎯 active when the producing extension sets 🎯 active.
  • 🐍 ty ✓ ruff ✓ when the producing extension sets a Python status with a leading icon.
  • 🧪 running when any extension publishes an activity status with its own icon.
  • ⚠️ dup biome-lsp when local and npm installs register the same extension.

🧠 Use cases

  • Track agent context usage during long coding sessions.
  • See which model and thinking level are active.
  • Monitor token totals and estimated cost.
  • Keep git branch and project directory visible.
  • Make Pi terminal sessions easier to scan at a glance.

🗂️ Package layout

extensions/pi-statusline/
├── src/
│   └── statusline.ts
├── presets/
│   ├── ansi.ts
│   ├── classic.ts
│   ├── tokyo-night.ts
│   └── types.ts
├── README.md
├── LICENSE
├── tsconfig.json
└── package.json

The package exposes its Pi extension through package.json:

{
  "pi": {
    "extensions": ["./src/statusline.ts"]
  }
}

🔎 Keywords

Pi extension, Pi coding agent, statusline, terminal UI, AI coding agent status, token usage, context window, model status, TypeScript Pi package.

📄 License

MIT. See LICENSE.