@tryinget/pi-activity-strip

pi extension package for activity-strip workflows in monorepo runtime

Packages

Package details

extensionprompt

Install @tryinget/pi-activity-strip from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@tryinget/pi-activity-strip
Package
@tryinget/pi-activity-strip
Version
0.2.0
Published
Jul 11, 2026
Downloads
75/mo · 75/wk
Author
tryinget
License
SEE LICENSE IN LICENSE
Types
extension, prompt
Size
95.1 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/activity-strip.js"
  ],
  "prompts": [
    "./prompts"
  ]
}

Security note

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

README


summary: "Top-row live activity strip for local Pi sessions running in Ghostty or other terminals." read_when:

  • "Starting work in this package workspace."
  • "Installing or verifying the activity strip in Pi." system4d: container: "Monorepo package for a local broker + Electron overlay + Pi extension telemetry seam." compass: "Make Pi session activity visible at a glance without changing the operator's normal terminal workflow." engine: "Pi extension emits session telemetry -> local broker aggregates -> top-row Electron strip renders live state." fog: "Main risks are runtime drift across Pi host versions, Electron availability, and stale-session behavior under real long-running work."

@tryinget/pi-activity-strip

A Pi extension package that gives you a screen-top activity strip showing what your live Pi sessions are doing.

This package is designed for the exact workflow you asked for:

  • multiple Ghostty tabs
  • multiple Pi sessions
  • a persistent top-row ribbon
  • fine-grained live detail without changing how you normally run Pi

What it does

  • auto-starts a local top-row overlay when Pi starts in a TUI session
  • tracks each active Pi session independently
  • shows one card per live session
  • surfaces:
    • repo/session label
    • current phase
    • current tool or target
    • fine-grained detail text
    • elapsed time plus last-seen freshness
    • state color (thinking, tool, waiting, done, error)
  • keeps a local broker so multiple Pi processes can report into one strip

Architecture

Pi session
  -> activity-strip extension
  -> local unix-socket broker
  -> Electron top-row overlay

This is intentionally local-first. It does not require moving your workflow onto pi-server first.

Current scope

Implemented now:

  • local per-host broker
  • primary-display top-row strip
  • one card per active Pi session
  • headless-safe telemetry publishing
  • explicit open/status/doctor/snapshot/fix-top/stop commands
  • local visual capture helpers so the agent can inspect the strip directly

Not implemented yet:

  • multi-monitor strip replication
  • historical timeline / expand-on-hover detail
  • remote observers via pi-server

Installation in Pi

From this package directory:

cd ~/ai-society/softwareco/owned/pi-extensions/packages/pi-activity-strip
pi install "$PWD"

Then for existing Pi tabs:

  • run /reload in each tab you want tracked

For new Pi tabs:

  • the package will load automatically from your Pi settings

Operator commands

Package-local CLI

npm run strip:open
npm run strip:status
npm run strip:doctor
npm run strip:snapshot
npm run strip:fix-top
npm run strip:stop

or directly:

node ./bin/pi-activity-strip.mjs open
node ./bin/pi-activity-strip.mjs status
node ./bin/pi-activity-strip.mjs doctor
node ./bin/pi-activity-strip.mjs snapshot
node ./bin/pi-activity-strip.mjs fix-top

Pi slash commands

Inside Pi:

/activity-strip
/activity-strip status
/activity-strip doctor
/activity-strip fix-top
/activity-strip stop
/activity-strip-stop

In Pi with UI support:

  • /activity-strip status opens a detailed runtime status report when an editor surface is available
  • /activity-strip doctor opens the host-compatibility report

Verification commands

Package checks

npm install
npm run check
npm run release:check:quick

Run the strip locally

npm run strip:open
npm run strip:status
npm run strip:doctor
npm run strip:snapshot

Capture what the agent should inspect

npm run capture:strip   # just the Pi activity strip window
npm run capture:top     # top band of the focused output, including the strip + upper window area

These are specifically useful so the agent can inspect the current visual state without you manually posting screenshots.

Simulate multiple sessions

npm run demo:simulate

Real Pi smoke on the live broker

npm run smoke:headless-live

This smoke:

  • opens the strip
  • runs a real headless Pi session with this extension loaded
  • exercises a real tool call
  • verifies that the broker observed the session while it was active

Compatibility diagnostics

npm run strip:doctor
node ./bin/pi-activity-strip.mjs doctor --json

Use doctor before opening the strip when the host/display assumptions are uncertain. It reports:

  • whether a graphical session is present
  • whether Electron can be resolved
  • whether Niri-specific top-edge repair is available
  • whether the current setup is multi-display even though the strip remains primary-display-only

Environment controls

  • PI_ACTIVITY_STRIP_AUTO_START=0
    • disable automatic strip opening on Pi session start
  • PI_ACTIVITY_STRIP_CLICK_THROUGH=0
    • make the overlay clickable instead of mouse-transparent
  • PI_ACTIVITY_STRIP_ELECTRON_BIN=/path/to/electron
    • override Electron binary discovery
  • GLIMPSE_ELECTRON_BIN=/path/to/electron
    • shared Electron override also respected

Practical usage for your Ghostty tabs

If you want this for all current tabs:

  1. install the package once with pi install
  2. run /reload inside each already-open Pi tab
  3. open the strip once with /activity-strip or npm run strip:open
  4. from then on, every loaded Pi session should report into the same top-row ribbon

References