@vanillagreen/pi-flightdeck

Optional Pi status shell for the flightdeck skill: owner-scoped mini-dashboard, pause banner, notifications, and /flightdeck focus/open integration for the Rust app.

Packages

Package details

extension

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

$ pi install npm:@vanillagreen/pi-flightdeck
Package
@vanillagreen/pi-flightdeck
Version
0.1.2
Published
May 24, 2026
Downloads
not available
Author
vanillagreencom
License
MIT
Types
extension
Size
382.9 KB
Dependencies
0 dependencies · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/flightdeck.ts"
  ]
}

Security note

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

README

pi-flightdeck

Flightdeck mini-dashboard Flightdeck skill app

Optional Pi UI support for the flightdeck skill. The Rust app (flightdeck-dashboard) is the canonical full Flightdeck UI; this Pi extension adds inline status near chat and a /flightdeck command that focuses the Rust app or launches it when missing.

The Flightdeck skill and Rust dashboard work without this extension.

Highlights

  • Pause banner — yellow frame above the editor when Flightdeck master pauses for the user. Clears on resume, and respects user-hidden widget state.
  • Persistent mini-dashboard widget — compact tree of active tracked sessions with state, kind, harness, last decision, age, and per-pane cost/turns/tokens. Once hidden by the user, state-file ticks and settings events do not reopen it until explicit toggle-in.
  • /flightdeck app focus/open — delegates to flightdeck-dashboard focus-or-launch --json, focusing an existing app window or launching it in tmux.
  • Owner-scoped by default — dashboard renders only in the Flightdeck owner pane. Child panes remain suppressed. Visibility is configurable. State/archive read errors still render a diagnostic banner so corrupted state is visible even when owner metadata cannot be read.
  • Stale-pane guard — standby/watch hints ignore state files whose tracked entries only point at tmux pane ids that no longer exist.
  • Optional terminal bell when master pauses.
  • Participates in vstack's stable mini-dashboard stack order: Flightdeck → Tasks → Agents → BG tasks.

Read-only by design

The Flightdeck skill owns state mutation; the daemon owns wake delivery; pane-respond owns sending input to inner panes. pi-flightdeck only renders active status from on-disk state and delegates full inspection/control to the Rust app.

Terminated archives are not shown as active mini-dashboard state. Use the Rust app for active dashboard context and supported archive/session inspection commands; a dedicated History UI is not part of this status-shell extension.

Install

Via vstack:

vstack add vanillagreencom/vstack --pi-extension pi-flightdeck --harness pi -y

Or globally:

vstack add vanillagreencom/vstack --global --pi-extension pi-flightdeck --harness pi -y

Restart Pi after installation.

Commands

Command Action
/flightdeck Focus the Rust Flightdeck app, or launch it if missing. Outside tmux, reports a clear blocked error.
/flightdeck:toggle Cycle the persistent Flightdeck mini-dashboard widget; toggling in restores the last visible mode.

Settings

Open /extensions:settings; settings appear under the Flightdeck Status tab.

Glyph style: each package exposes glyphStyle (unicode default, ascii for terminal-safe chrome). @vanillagreen/pi-tool-renderer.globalGlyphStyleOverride=ascii forces ASCII chrome across vstack Pi extensions while leaving tool/model/user content unchanged.

Dashboard

Setting What it does
Show dashboard widget Render the persistent mini-dashboard above the editor. User-hidden state suppresses the whole inline widget until explicit toggle-in.
Dashboard visibility Where the persistent mini-dashboard may render: owner (default), tmux-session (any pane in the same tmux session), or always. Child panes remain suppressed in all modes.
Dashboard default state Initial state at session start: hidden, compact, or expanded; settings changes do not reopen a user-hidden widget mid-session.
Dashboard max sessions Max tracked-session rows shown.
Dashboard stale-after (min) Suppress the session tree with a one-line hint when the daemon is dead and the last poll is older than N minutes. 0 disables.
Tree connector style unicode or ascii.

Pause banner

Setting What it does
Show pause banner Render the pause-for-user banner unless the inline widget is user-hidden.
Terminal bell on pause Ring the bell when master first pauses.

Keyboard

Setting What it does
Dashboard cycle shortcut Configurable; defaults to alt+m. Restores the last visible mode when toggled back in. Use none to disable.

Refresh

Setting What it does
Refresh interval Poll rate for state files (ms).
Daemon state dir override Override FD_STATE_DIR resolution. Leave empty for the default.
Master state dir (project-relative) Directory inside the project root holding the master state file. Matches FLIGHTDECK_STATE_DIR (default tmp).

If your project uses a non-default FLIGHTDECK_STATE_DIR or FD_STATE_DIR, set the matching extension setting so the mini-dashboard reads the right files. Daemon tuning env vars are owned by the Flightdeck skill — see its README.

Out of scope

  • No full-screen Pi Flightdeck dashboard; use the Rust app.
  • No write actions.
  • No daemon control.
  • No multi-tmux-session aggregation.