pi-packs
Umbrella Pi package: /install picker for a curated set of pi extensions (pi-qq, pi-chrome, pi-intercom, pi-linter, pi-bar, pi-prompt-shelf, pi-caveman).
Package details
Install pi-packs from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-packs- Package
pi-packs- Version
0.7.11- Published
- May 13, 2026
- Downloads
- 1,310/mo · 1,310/wk
- Author
- tianrendong
- License
- MIT
- Types
- extension
- Size
- 18.2 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./extensions/install-command.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-packs
Umbrella Pi package that lets users install a curated set of individually published pi extensions through a single /install picker:
pi-qq— ask side questions in an overlay.pi-chrome— drive your existing Chrome profile.pi-intercom— message other local Pi sessions.pi-linter— lint prompt drafts before sending.pi-bar— show model, thinking, and context in the footer.pi-prompt-shelf— shelve and restore prompt drafts.pi-caveman— make replies terse to save tokens.
Operating principles
- Each extension is its own independently published npm package.
- Each extension package that's developed in-tree lives under
packages/and is wired into the workspace through npm workspaces. pi-packsis only an umbrella installer: it lets users install a curated set of extensions with one/installcommand.pi-packsmust not know or document implementation details of any individual extension. Extension-specific code, docs, skills, versioning, and release notes belong with that extension package.
Install
Bootstrap the umbrella once:
pi install npm:pi-packs
Or locally while developing:
npm install
pi install /Users/tianrendong/pi-packs
/install — interactive picker inside Pi
After the umbrella is loaded, run /install in any Pi session. A toggle dialog lets you pick which of the listed extensions to install as their own pi packages (so you can later update or remove them individually):
- Pick scope: Global (
~/.pi/agent/settings.json) or Project (.pi/settings.json). - All packages start selected. Use ↑/↓ to move and Space to toggle any package between
install/skip. - Press Enter to install the selected packages, or Esc to cancel. For each
installentry, pi first removes existing installs that would register conflicting extensions/commands (for example an old localpi-chromecheckout), then shells out topi install [-l] npm:<name>. - If anything was installed,
/installautomatically reloads Pi so the new extensions are available immediately.
Extending the picker
The list of installable packages is declared in package.json under the "pi-packs" key, decoupled from npm dependencies so the umbrella can advertise packages it does not bundle:
{
"pi-packs": {
"installable": [
{ "name": "pi-qq", "description": "…" },
{ "name": "pi-chrome", "description": "…" }
]
}
}
How this package works
pi-packs exposes only its installer command through the pi.extensions manifest:
{
"pi": {
"extensions": [
"./extensions/install-command.ts"
]
}
}
It intentionally does not auto-load the curated extensions. Loading bundled entrypoints here would conflict with users who already installed packages like pi-chrome directly. Use /install to install selected packages as first-class Pi packages instead.
The picker metadata lives in package.json under pi-packs.installable; the published umbrella intentionally has no package dependencies, so installing it does not install or auto-load the curated extensions.
Verify package contents
npm run pack:dry-run