$ cat ~/map/pi-extensions-nicknisi.md
pi-extensions (nicknisi)
Nick Nisi's pnpm monorepo of independently installable pi coding agent packages.
extensions✓ Oct 16
Facts
- repository
- github.com/nicknisi/pi-extensions ↗
- GitHub Stars
- ★ 45
- Forks
- 10
- license
- MIT
- npm / mo
- —
- last push
- Oct 14, 2026
install
pi install ~/Developer/pi-extensions/packages/statusline## TL;DR
Nick Nisi's pi extensions — a pnpm monorepo of independently installable packages spanning side-channel chat, subagent orchestration, statusline, and UI polish, each with its own pi manifest.
## Key points
- $Monorepo layout: every package under packages/ is a self-contained pi extension (or shared library) with its own pi manifest — install only the ones you want.
- $Packages are private (not on npm) and installed from a local checkout; local paths are added to pi's settings without copying, so edits in the repo are live on the next pi start. Remove with pi remove <path>.
- $Productivity packages include btw (side-channel LLM chat in a floating window that never touches the main agent's context), codemode (model-written TypeScript orchestrating subagents compositionally), llm-council (parallel models plus a synthesizing chairman), subagents, relay, orchestrate (/goal and /loop), and handoff.
- $UI packages include statusline (footer with model, cost, context bar, lines changed, usage limits, git PR link, writing tmux status files), header, composer, recap, and spinner with roughly 1000 rotating joke and meme phrases.
- $Behavior packages include cloak (redacts secrets from read tool results via glob-scoped regex rules), fast (toggle premium faster inference), model-switch, session-name, stash, and artifacts (render markdown and HTML to styled browser pages with live reload).
- $packages/shared (@nicknisi/pi-shared) is a helper library, not an extension: getModelProvider for one-off LLM calls, TUI utilities, the in-process subagent runtime, and the declarative workflow engine.
- $Development uses pnpm with tsgo (TypeScript 7 native preview) for typecheck plus oxlint and oxfmt; @earendil-works/* packages are peer dependencies that pi's runtime aliases to its own modules at load time.
- $Several extensions lean on pi internals, and auto-theme, statusline's tmux integration, and btw's fork-to-window assume macOS, tmux, and ghostty — a pi upgrade can break them.
## FAQ
Q How do I install a single extension?
Clone the repo, then point pi install at the package directory — absolute (~/Developer/pi-extensions/packages/statusline) or relative to the settings file (../pi-extensions/packages/btw). Local paths are added without copying, so repository edits go live on the next pi start.
Q Are these packages published on npm?
No. They are private and installed from a local checkout of the monorepo; cross-package helpers stay in packages/shared, consumed as @nicknisi/pi-shared via workspace:*.
Q Where do runtime configs live?
Outside the repo, in ~/.pi/agent/configs/<name>.json for most packages; example configs ship with the packages that need them.
## References
## Related entries
$ pi-extensions (milanglacier)
Eight independently installable pi extensions in one monorepo: plan mode, dynamic subagent workflows, background tasks, per-session model switching.
$ pi-extensions (narumiruna)
TypeScript monorepo of pi coding agent extensions for planning, browser control, Git workflows, and observability.
$ pi-extensions (ZhenHuangLab)
Seven npm-published pi extensions in one workspace: context recall, per-model prompts, X search, LaTeX math, tool-call folding.
## Guides
Last updated: Aug 31, 2026