@guygrigsby/pi-header

Replace pi's startup header with a framed two-column box: block π and greeting beside tips and what's new.

Packages

Package details

extension

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

$ pi install npm:@guygrigsby/pi-header
Package
@guygrigsby/pi-header
Version
0.2.0
Published
Aug 7, 2026
Downloads
79/mo · 17/wk
Author
guygrigsby
License
MIT
Types
extension
Size
25.7 KB
Dependencies
0 dependencies · 1 peer
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

header

Replaces pi's built-in startup header (logo + keybinding hints) with a framed two-column box: greeting, block π and session facts on the left, tips and the release's headlines on the right.

╭─ pi v0.83.0 ──────────────────────────────────┬──────────────────────────────────────────────────────────────────────╮
│                afternoon, Guy                 │ Tips for getting started                                             │
│                                               │ /model switches model mid-session                                    │
│                 ████████████                  │ /tree browses this session's branches                                │
│                  ██     ██                    │                                                                      │
│                  ██     ██                    │ ──────────────────────────────────────────────────────────────────── │
│                  ██     ██                    │ What's new in 0.83.0                                                 │
│                  ██     ██▄                   │ Credential export for external clients                               │
│                                               │ Headless OpenRouter sign-in                                          │
│                kimi-k3 · high                 │                                                                      │
│           ~/projects/pi-extensions            │ /changelog for more                                                  │
╰───────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────╯

The greeting name is resolved once at startup from, in order: PI_HEADER_NAME, git user.name, then the OS username — first token, capitalized. What's new is read from the installed pi's CHANGELOG.md and drops out silently if that read fails. Tips rotate by the day.

The frame, title and π are the only colored parts, and they take PI_HEADER_COLOR rather than a theme token — brand color in one place, so the theme itself can stay neutral. Everything inside the box uses theme colors.

Widths adapt: the box caps at 120 columns rather than stretching, stacks to one column below 80, and falls back to the plain glyph-and-greeting header below 46.

Requires quietStartup: false in your settings. setHeader is a no-op when the built-in header is silenced, so with quietStartup: true you would see nothing.

Install

pi install npm:@guygrigsby/pi-header

Config

  • PI_HEADER_NAME — name used in the greeting (else git user.name, else OS user).
  • PI_HEADER_COLOR — frame, title and π as #rrggbb (default #ff4fa3). Anything that isn't a hex color falls back to the theme's accent.

Test

npm test

Covers the pure layout and parsing in extensions/header-core.mjs: column fitting, frame drawing, changelog extraction, path shortening. The setHeader wiring is exercised by running pi.