@clement_chsn/pi-activity-indicator

Shared Pi TUI activity bar: run timer and counters of active background work.

Packages

Package details

extension

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

$ pi install npm:@clement_chsn/pi-activity-indicator
Package
@clement_chsn/pi-activity-indicator
Version
0.1.0
Published
Oct 8, 2026
Downloads
247/mo · 21/wk
Author
clement_chsn
License
MIT
Types
extension
Size
6.3 KB
Dependencies
1 dependency · 1 peer
Pi manifest JSON
{
  "image": "https://raw.githubusercontent.com/clementchesneau/pi-extensions/main/docs/images/graphite-running.png",
  "extensions": [
    "./index.js"
  ]
}

Security note

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

README

Activity indicator

One line above the Pi editor for the Graphite run timer and the number of running background tasks and subagents, instead of one widget each.

Run timer on the left, task and subagent counters on the right

pi install npm:@clement_chsn/pi-activity-indicator

The timer sits on the left and the counters on the right; on a narrow terminal, the counters win. It adds no tool or command. Without it, graphite-ui, subagents and background-tasks keep their own widgets.

For extension authors

The line speaks a small protocol over pi.events; constants and a producer client are in @clement_chsn/pi-shared/activity-indicator.

Event Payload Meaning
activity-indicator:ready { protocol: 1 } Emitted at each TUI session start: producers republish all their state
activity-indicator:update { source, label, count } Replaces the counter of source; count: 0 removes it
activity-indicator:timer { text, active } Graphite's displayed duration, accented while active; text: '' hides it

Call connectActivityIndicator(pi) at startup. On each render, publish through update and timer when available is true, otherwise show your own widget; republish everything in onReady. Ignore a ready of another protocol version, stop publishing once your session is closed, and send count: 0 when your extension is disabled.