@yusukeshib/pi-working-status

Replace pi's plain "Working..." loader with a live, detailed status line that tracks the agent through every phase of a turn.

Packages

Package details

extension

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

$ pi install npm:@yusukeshib/pi-working-status
Package
@yusukeshib/pi-working-status
Version
0.1.0
Published
May 30, 2026
Downloads
not available
Author
yusukeshib
License
MIT
Types
extension
Size
16.3 KB
Dependencies
0 dependencies · 1 peer
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

@yusukeshib/pi-working-status

A pi extension that replaces the plain Working... loader with a live, detailed status line tracking the agent through every phase of a turn — request, streaming, and tool execution.

What it looks like

The detail in parentheses changes as the turn progresses:

Working... (0:02 · sending request to api.anthropic.com…)
Working... (0:04 · receiving reasoning stream… 240 tok · 1.2 KB)
Working... (0:07 · receiving text stream… 1.1k tok · 180 tok/s · 4.8 KB)
Working... (0:08 · ⚙ bash: npm test -- --watch=false)
Working... (0:09 · ⚙ running bash, read)

A fixed elapsed clock follows Working, and a detail segment shows the most specific current activity:

Detail Meaning
⚙ <tool>: <args> single tool executing (command / path / pattern)
⚙ running <tools> multiple tools executing (deduped names, max 3)
sending request to <host>… request being sent (first ~0.4s)
waiting for response… <n>s request sent, awaiting any response
receiving reasoning stream… provider streaming a reasoning block
receiving text stream… provider streaming assistant text
receiving tool call… provider streaming a tool call
connected to <host>, waiting… <n>s headers received, awaiting first token
HTTP <status> last response returned a non-2xx status

Streaming lines append token counts, tok/s, and decoded byte counts when the provider reports them mid-stream (Anthropic, Bedrock, Mistral, Google). Model id and context-window usage are intentionally omitted — pi's footer already shows them.

Install

pi install npm:@yusukeshib/pi-working-status

Via git (no npm publish required):

pi install git:github.com/yusukeshib/pi-working-status

Try it without installing:

pi -e npm:@yusukeshib/pi-working-status

Command

/working-status [on|off]

  • /working-status off — restore pi's default Working... message
  • /working-status on — re-enable the detailed status line
  • /working-status — show the current on/off state

How it works

The extension subscribes to pi's turn lifecycle events (before_provider_request, after_provider_response, message_update, tool_execution_start/end) and a 1s ticker, then composes the status line through ctx.ui.setWorkingMessage(). Token counts come from the provider's streamed usage; tok/s and time-to-first-token are derived locally. Byte counts are decoded payload size, not raw HTTP bytes.

License

MIT