pi-working-status

Replace pi's generic Working row with a live phase line — waiting/thinking/writing/calling/tool with measured timers, character counts, and quiet detection

Packages

Package details

extension

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

$ pi install npm:pi-working-status
Package
pi-working-status
Version
0.1.0
Published
Sep 23, 2026
Downloads
167/mo · 7/wk
Author
cyzlmh
License
MIT
Types
extension
Size
11.3 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

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

README

pi-working-status

Replace pi's generic Working row with a live phase line. Everything shown is measured from the actual event stream — never estimated:

waiting 4.2s                 request sent → first token (TTFT)
thinking 3.1s · 820 ch       reasoning content streaming
writing 5.4s · 2.1k ch       assistant text streaming
calling write 1.2s           tool-call arguments being generated
bash 12.3s · 1.2k out        tool executing (out = text-block chars emitted)
write 1.4s · 300 out
· quiet 6.1s                 nothing for >3s — stalls become visible

Install

pi install npm:pi-working-status

Then /reload or restart pi.

What the numbers mean

All counts are exact per-delta sums, not estimates:

Field Meaning
waiting time since the provider request went out, until the first delta
thinking / ch reasoning characters produced by this LLM call
writing / ch assistant text characters produced by this LLM call
calling tool-call arguments being streamed (shows the tool name)
out characters the running tool has emitted (text blocks only)
quiet seconds since the last event of any kind (shown past 3s)

out counts text only. A tool that returns just images (e.g. read on a screenshot) legitimately stays at 0 — that is a real value, not a hang. Use the trailing quiet timer to tell the difference.

Notes

  • No commands, no config: installing the extension turns it on. To disable it, remove the extension (or delete the file before /reload).
  • The timer runs at 200 ms; the row only repaints when its text actually changes.
  • On agent_settled the row is cleared and the timer stops, so it never leaks into the next turn.

Requirements

  • pi on your PATH (Node ≥ 22).

License

MIT