pi-quiet

This rig's bash tool for the pi coding agent: calm one-line rendering (ctrl+o expands), pi's shell settings honoured, AGENT_SESSION_ID stamped per command from PI_SESSION_ID. Execution is still pi's built-in.

Packages

Package details

extension

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

$ pi install npm:pi-quiet
Package
pi-quiet
Version
0.2.0
Published
Sep 9, 2026
Downloads
656/mo · 185/wk
Author
schuettc
License
MIT
Types
extension
Size
10.2 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

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

README

pi-quiet

Calm tool rendering for the pi coding agent.

pi renders every bash call with the full command text, a multi-line output preview, and timing — useful when you're debugging a command, noisy when the agent is doing routine work. pi-quiet collapses each bash call to two lines:

$ ls -la /tmp | head -20
  → ok · 15 lines · … -rw-r--r--  1 user  staff  5742 Aug 26 22:17 README.md

Multi-line commands show (+N lines). Failures show a red error. Streaming shows … running.

Press ctrl+o (pi's app.tools.expand binding) and the stock built-in rendering returns in full — complete commands, full output, truncation warnings. Press it again to re-collapse. It's a live toggle over the whole transcript: work collapsed, expand when something looks off.

What it owns, by construction

The extension re-registers the built-in bash tool via pi's own createBashToolDefinition. It is the one package on a rig that registers bash, and it owns three things about it:

  • Rendering. The two render slots above. Execution is the built-in tool: the model receives the full output, permission systems, reviewers, and sandboxes that hook execution are unaffected, and session logs store the full result.
  • pi's shell settings. The built-in is constructed with shellCommandPrefix and shellPath — read with the same settings pi itself would use, including pi's own project-trust decision for the current directory (session_start is where that decision becomes available, so that is where the tool is registered). A trusted project's .pi/settings.json contributes its shellCommandPrefix and shellPath; an untrusted project's are ignored, exactly as pi ignores them. Re-registration on each session_start means a /reload after editing settings picks up the new prefix.
  • Session identity. Every command's environment carries AGENT_SESSION_ID, set from pi's per-command PI_SESSION_ID. Tools that scope themselves to the session that ran them (muster, galley, tackle) read that neutral name. It is set per command from pi's live session, never from the extension's process environment, so an in-process subagent can never leave the parent's commands carrying a child's id.

Install

pi install npm:pi-quiet

Or try it for one session:

pi -e npm:pi-quiet

pi shows a one-time notice that the built-in bash tool was overridden — that's this extension, and it's expected.

Caveats

  • Covers bash only (the dominant chatter source). read/grep/find/ls may follow.
  • The expanded path delegates to pi's built-in renderer, so a pi upgrade that reshapes renderer internals can require a patch release here.