pi-ext
Make Pi fit the way you work: choose tools, working modes, review flows, and session helpers. Use only the extensions you need; each README shows when it helps and how to start using it in Pi.
Install
The repository root is a development workspace, not a Pi package.
Every extension builds into its own self-contained package under dist/<extension>, and Pi loads those packages.
Build the packages:
mise run //:build-all
Build one:
mise run //:build-ext ultra
Print the explicit package list for ~/.pi/agent/settings.json:
mise run //:settings-entries
Each entry is one local package path, e.g. ~/Workspace/pi-ext/dist/ultra.
After a rebuild, restart Pi to load the updated packages.
Published npm and Git packages of the generated output are planned; until then, install from a local build.
Filtering
A generated package exposes exactly one extension entry plus its declared skills.
Load a subset by listing only the wanted dist/<extension> packages.
Resource filters still apply per package:
{
"packages": [
{
"source": "~/Workspace/pi-ext/dist/web",
"skills": []
}
]
}
Filter rules:
extensionsselects package extension entrypoints.skillsindependently selects extension-owned skills;[]loads none.promptsandthemeswork the same way;[]loads none.- Omit a key to load every resource of that type exported by the package.
- Values are package-root paths or globs.
!patternexcludes.+pathand-pathforce exact inclusion or exclusion.- Filters only narrow package exports. They do not resurrect unexported junk.
Settings
Extension settings live under the extension slug in Pi's settings.json, for example { "nushell": { "enable": true } }.
Each value resolves in this order: CLI flag, environment variable, trusted project .pi/settings.json, user ~/.pi/agent/settings.json, built-in default.
Untrusted project settings are ignored, and an invalid value warns instead of falling back to a lower source.
The Config column below shows which sources each extension accepts; its README lists the keys.
Extensions
| Extension slug | Short explanation | Config | README |
|---|---|---|---|
angel |
Tool-using investigative advisor backed by a configured model. | settings | README |
ask |
Answer Pi's clarifying questions with structured choices. | none | README |
bak |
Back up and restore Pi sessions across machines. | settings, env | README |
chrome-cdp |
Raw CDP commands, captures, and traces against extension-owned Chrome. | settings, --chrome |
README |
context-size |
Context-window usage telemetry. | settings, env | README |
continuity |
Continues unfinished work after context compaction. | none | README |
cost |
Token and spend telemetry. | none | README |
decay |
Recency-weighted structured context compaction. | settings | README |
fast |
OpenAI Codex priority service tier. | settings | README |
footer |
Shared stable footer renderer. | none | README |
git-safe |
Hardened Git operations and clone tooling. | settings, env | README |
good-job |
Learns from pass-through gj praise and wtf complaints. |
settings | README |
gratis |
Native grts/auto virtual routing across explicitly free chat models. |
none | README |
handoff |
Transfers the current conversation into a new focused session via an editable prompt. | none | README |
horst |
Shared config with per-host environment facts and tool deltas. | settings | README |
intellij |
Automatically registers native IntelliJ MCP for .idea projects. |
settings | README |
klaus |
Runs Claude models through the Claude Agent SDK. | none | README |
masks |
Switches model and thinking level together. | settings | README |
model-info |
Executor, transport, and advisor telemetry. | none | README |
mockup |
Browser-based review of generated HTML mockups. | settings, env | README |
notes |
Session-backed pending prompt notes. | settings, env | README |
nu-bang |
Run Nushell commands directly from Pi's input. | settings, env | README |
nushell |
Let Pi work with structured shell data and persistent shell state. | settings, env, --nushell |
README |
open |
Opens mentioned files in an editor beside Pi. | none | README |
os-notifier |
Native notifications when interactive work completes or blocks. | none | README |
pfui |
Pain-Free User Interface fallback identity and Pi context discovery. | none | README |
prompt-autopsy |
Writes and groups Pi's generated system prompt for inspection. | none | README |
quota |
Subscription quota dashboard for supported providers. | settings, env | README |
rtk |
Rewrites eligible Bash tool calls through RTK. | settings, env | README |
runtime |
Runtime detection telemetry for footer and status. | settings, env | README |
session-rename |
Generates short session names from branch activity. | settings, env | README |
strata |
Browser review of Git changes organized into cohorts and layers. | settings, env | README |
the-system |
Project governance through one /system command. |
none | README |
tps |
Tokens-per-second footer telemetry. | none | README |
ultra |
Declarative multi-agent workflow orchestration. | settings | README |
usage |
Local usage statistics dashboard. | none | README |
uv |
Keep Pi's Python dependency work on uv. |
none | README |
vcs-status |
Git and Jujutsu workspace telemetry. | settings, env | README |
web |
Web fetch, search, and site-map discovery. | settings, env | README |