A collection of pi extensions for an enhanced coding experience.
pi install https://github.com/Loongphy/my-pi(git:github.com/Loongphy/my-pi is equivalent.) pi clones the repo into ~/.pi/agent/git/github.com/Loongphy/my-pi and records the source in your settings.json (packages). The extensions listed in the package manifest (package.json → pi.extensions) are loaded on the next startup — no manual copying, and no filename conflicts: the package lives in its own directory, fully separate from ~/.pi/agent/extensions/.
Then reload pi:
/reload
Update later with pi update (all packages) or pi update https://github.com/Loongphy/my-pi.
How it shows up in pi:
pi list→ the source string you installed (https://github.com/Loongphy/my-piorgit:github.com/Loongphy/my-pi) with install path~/.pi/agent/git/github.com/Loongphy/my-pi- loaded-resources panel (compact labels) →
Loongphy/my-pi:editor.ts,Loongphy/my-pi:status
Note
The git clone is managed by pi — updating runs git clean -fdx + git pull, so don't edit files inside ~/.pi/agent/git/. Keep personal customizations in ~/.pi/agent/extensions/ (loaded alongside packages).
Previously this collection was installed by copying files into ~/.pi/agent/extensions/. To migrate to the recommended install:
pi install https://github.com/Loongphy/my-piThen remove the manual copies from ~/.pi/agent/extensions/ (the ones that exist in the package), and run /reload.
Warning
If you keep both, the same extensions load twice — duplicate patches, first-wins tool registration.
Archived: old manual setup (deprecated — for reference only)
git clone https://github.com/Loongphy/my-pi.git /tmp/pi-extensions
cp -r /tmp/pi-extensions/*.ts ~/.pi/agent/extensions/
cp -r /tmp/pi-extensions/status/ ~/.pi/agent/extensions/status/[!WARNING] Check for filename conflicts. If you already have an extension with the same name in
~/.pi/agent/extensions, rename the incoming files (e.g.,collapse-tools.new.ts) rather than overwriting your existing ones.
A comprehensive status bar suite with multiple modules:
| Module | Description |
|---|---|
| index.ts | Main extension entry point, orchestrates all status modules |
| header.ts | Rich status header above the editor showing model, working directory + git branch, token statistics, context usage, generation speed, and TTFT |
| git.ts | Git status detection — branch name, ahead/behind counts, staged/modified/deleted/conflicted/untracked file counts |
| tps.ts | Token speed engine — real-time TPS estimation during streaming, accurate TPS after completion, TTFT measurement |
| title.ts | Animated terminal title with a braille spinner during agent activity |
| theme.ts | Cross-platform system dark/light mode detection and automatic pi theme switching |
| statusline.ts | /statusline command for interactive configuration of which items appear in the header |
Files: status/index.ts, status/header.ts, status/git.ts, status/tps.ts, status/title.ts, status/theme.ts, status/statusline.ts
- Composer — codex-style input area with a bold
❯prompt (highlighted in!bashmode) - Skill mentions —
$skillmentions render bold in the theme accent; typing$opens the mention picker with all indexed skills (agents, codex, claude, pi); unknown$tokensare left untouched
File: editor.ts
Logs every provider request to ~/.pi/agent/requests/<session>.request.log — HTTP status, headers, token counts, model info — with sensitive query parameters sanitized.
File: request-logger.ts
Ctrl+Shift+C copies the current editor content to the system clipboard.
File: shortcuts.ts
Retries transient HTTP 429 responses automatically (any provider): waits clamped to 1s–10min, up to 10 attempts, with a live status-bar countdown. Hard usage limits fail fast — the agent stops with the reset time instead.
Command: /429-retry toggles on/off · /429-retry <seconds> sets the default wait when the response carries no retry-after (default 30s)
File: 429-retry.ts


