pi-signal

Simplified cockpit-style TUI for Pi agent workstreams, activated with /signal.

Packages

Package details

extension

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

$ pi install npm:pi-signal
Package
pi-signal
Version
0.1.2
Published
Oct 3, 2026
Downloads
209/mo · 14/wk
Author
accolver
License
MIT
Types
extension
Size
26 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/signal.ts"
  ]
}

Security note

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

README

pi-signal

A Pi extension that adds a simplified cockpit-style TUI for agent work.

pi-signal now carries the Pi Mode cockpit functionality. The old /pimode command is deprecated; use /signal instead.

Features

  • /signal toggles the cockpit UI on or off.
  • /signal off restores the native Pi UI pieces changed by the extension and clears the in-memory transcript.
  • Compact custom header, status panel, footer, and editor.
  • Tracked AI transcript panel below the editor.
  • Transcript keeps recent captured AI responses since activation or the last clear; tree navigation clears abandoned-branch capture.
  • Completion waits for Pi's final agent_settled boundary, including automatic retries and queued continuation. Model failures and aborts have distinct text states, separate from tool-error counts.
  • The cockpit is terminal-only. RPC receives a warning; JSON and print modes do not activate it.
  • Response panel dynamically resizes toward 60% of terminal height while leaving room for the rest of the cockpit.
  • Transcript display strips terminal control sequences, caps retained content, and caches wrapping work for long sessions.
  • ctrl+x transcript scroll mode with keyboard navigation.
  • Input box with side padding and rounded outer edges.
  • Hidden built-in working row and compact tool expansion while the cockpit is active.
  • Uses the public Pi extension API; it does not monkey-patch Pi internals.

Install

From this directory during development:

pi -e ./extensions/signal.ts

When the conventional installed Git copy exists, the checkout loading guard intentionally suppresses this local checkout to avoid duplicate commands. npm-installed paths are exempt, so a retained Git clone cannot suppress the registry package. For isolated validation, extract the tarball into a temporary package directory and load that path; /reload does not switch a live session from an installed copy to this checkout.

As an npm Pi package:

pi install npm:pi-signal

Or install directly from GitHub:

pi install git:github.com/accolver/pi-signal

Then restart Pi or run:

/reload

Usage

Toggle Pi Signal on or off (disabling also clears the in-memory transcript):

/signal

Explicitly disable it:

/signal off

Clear the transcript without disabling Pi Signal:

/signal clear

Toggle it:

/signal toggle

Keys

When Pi Signal is enabled:

  • ctrl+x enters transcript scroll mode.
  • In scroll mode: j/k line down/up, d/u page down/up, g top, G bottom.
  • esc, i, or ctrl+x exits scroll mode.

Captured transcript is transient: clear, disable, tree navigation, shutdown, or reload discards it. Signal does not reconstruct responses captured before activation or across session replacement.

Development and compatibility

Version 0.1.2 is checked against exact Pi 1.0.0 development packages; host packages remain optional wildcard peers and are not bundled. Preserve the npm lockfile and Node test runner:

npm ci --ignore-scripts
npm test
npm run check
npm pack --dry-run --ignore-scripts

A no-network Pi1 engine probe uses an extracted candidate package and local fixture responses only:

node scripts/pi1-runtime-probe.mjs /path/to/extracted/package

Current release, dependency, terminal QA, and red/green evidence is in .spec-to-ship/features/pi-1-compatibility/.

Package metadata

{
  "keywords": ["pi-package", "pi-extension"],
  "pi": {
    "extensions": ["./extensions/signal.ts"]
  }
}

License

MIT