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.
Package details
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
shellCommandPrefixandshellPath— read with the same settings pi itself would use, including pi's own project-trust decision for the current directory (session_startis where that decision becomes available, so that is where the tool is registered). A trusted project's.pi/settings.jsoncontributes itsshellCommandPrefixandshellPath; an untrusted project's are ignored, exactly as pi ignores them. Re-registration on eachsession_startmeans a/reloadafter editing settings picks up the new prefix. - Session identity. Every command's environment carries
AGENT_SESSION_ID, set from pi's per-commandPI_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
bashonly (the dominant chatter source).read/grep/find/lsmay 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.