@danypops/pi-packed
Pi package tools, commands, profiles, and TUI for the Packed daemon
Package details
Install @danypops/pi-packed from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@danypops/pi-packed- Package
@danypops/pi-packed- Version
0.19.7- Published
- Aug 1, 2026
- Downloads
- 3,413/mo · 2,137/wk
- Author
- danypops
- License
- unknown
- Types
- extension
- Size
- 126.5 KB
- Dependencies
- 4 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"extension/src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-packed
Pi integration for @danypops/packed: package tools, /packed, setup apply/reload, and named profiles.
pi install npm:@danypops/pi-packed
The extension connects to Packed's authenticated user daemon and starts the package-local packed serve process when no healthy daemon is available. It contains no SQLite, registry, package execution, or daemon implementation code.
Commands
/packed-- one floating overlay, four tabs (Packages/Find/Config/Settings), always shown in a persistent tab bar at the top: the focused tab shows the theme's own selectedBg color as a real background, unfocused tabs show only a foreground color with their own first letter highlighted as a jump mnemonic (the focused tab needs no mnemonic -- there's nothing to jump to when you're already there).Tab/Shift-Tab(or←/→) sweep between them -- recognized under legacy CSI, xterm's modifyOtherKeys, and the Kitty keyboard protocol alike, not just one hardcoded encoding; from any tab other than Packages,p/f/c/salso jump straight to the matching one (never stolen while that tab's own filter/query box is capturing text).Escreturns to Packages from anywhere else, or closes the panel from Packages itself. Every approval and reload confirmation, on any tab, renders inline on this same panel (y/nkeys), never a separate popup or native dialog. A standing test (keymap.test.ts, using Malevich's tree-stylefindMnemonicConflicts) verifies no two actions genuinely reachable at once share a key.- Packages (the default tab) -- every installed Pi package, with update availability. Mnemonics follow lazy.nvim's own convention (uppercase acts on every row, lowercase on the one under the cursor):
u/U-- update the selected package / update every outdated package, one combined confirmation and one reload.Ushows a spinner inline next to the package currently updating, settling into a real ✓ or ✗ plus a short tail of that update's own captured output once it finishes -- the list stays visible throughout, nothing swaps to a separate screen. A reload is confirmed separately from the update itself -- decline it to defer: the update already happened, only picking it up in this Pi session is deferred until/reload.x-- remove the selected package.d-- disable (or re-enable) the selected package's own extensions.c-- jump to the Config tab, scoped to the selected package.f-- jump to the Find tab.s-- jump to the Settings tab.Enteropens a smaller floating action menu with all of the above.rrefreshes,/filters,vcycles view modes.
- Find -- search the npm registry for new Pi packages and install one.
- Config -- enable or disable individual extensions, skills, prompt templates, and themes declared by installed packages, per package, at global or project scope (
vswitches global/project)./packed configopens the panel landing directly on this tab. - Settings -- change whether package mutations (install/update/remove/toggle) require confirmation.
- Packages (the default tab) -- every installed Pi package, with update availability. Mnemonics follow lazy.nvim's own convention (uppercase acts on every row, lowercase on the one under the cursor):
/packed setup plan [path] [--prune]//packed setup apply [path] [--prune]-- preview or apply a reproducible-environment manifest (pi-setup.json) against installed packages and profiles./profile [name]-- switch to a named Pi profile (provider, model, tools, instructions, theme), reading~/.pi/agent/profiles.jsonand a trusted project's own.pi/profiles.json.pi --profile <name>activates one at startup;Ctrl+Shift+Ucycles through them.