⚠️ Warning: The code in this repo is complete Vibeslop, written by clankers and not reviewed by me. Use at your own risk. I do use all these extensions all the time.
A collection of pi extensions. Each extension lives in its own directory with its own README.
annotate/– Plannotator feedback for the latest assistant messageplan-md/– Branch-based planning workflow with persisted plan files and Plannotator browser reviewtask-subagents/– Standalonesubagents/steer_subagentdelegation tools with recursion disabled in spawned child sessionsdiff-review/– Plannotator browser diff review with feedback sent directly to the agentreview/– Interactive review mode with target selection, structured findings capture, and triageside/– Ephemeral floating read-only side chat with summarized and live parent-session contextanswer/– Interactive Q&A workflow for extracting questions and sending compiled answerscache-expiry-warning/– Above-editor warning when a configured prompt cache may expire between turnsherdr-integration/– Herdr blocked-state reporting when Pi requires user inputmention-skills/–$skill-nameautocomplete with submit-time expansion toSKILL.mdpathsprompt-save/– Session-wide saved prompt picker with save, restore, copy, and delete shortcutsprompt-thinking/–^thinking-leveloverrides and session thinking-level shortcutssession-paths/– Cross-platform session lookup for equivalent macOS and Linux home pathsopenai-params/– OpenAI settings UI for fast mode, 24-hour cache retention, and verbosityfetch-url/– URL fetch tool with main-content extraction and markdown/html/raw outputweb-search/– Brave Searchweb_searchtool for single or multi-query result setsstatus/– Live status widget for model, repo, timing, and PR contexttool-display/– Compact built-in tool rendering overrides forread,write,edit,bash,grep,find, andls
See each extension’s README for setup and usage. Developer notes live in AGENTS.md.
- Keep pi runtime packages in each extension's
peerDependencies(@earendil-works/pi-*,typeboxwhere needed). This is what published npm packages rely on. - Keep the same runtime packages in the workspace root
devDependenciesso local symlinked extensions resolve the same imports during development. - Run
pnpm run check:peer-runtimebefore publishing. This verifies that all extensionpeerDependenciesare represented in rootdevDependencies. - Run
pnpm run check:package-boundariesbefore publishing. This verifies that packaged runtime source files stay within their package boundaries. - Use
scripts/publish-npmjs.sh --all --only-unpublishedto publish only package versions that are not already on npm (--dry-runis supported). Outside dry-run mode, the script checks npm auth first and runsnpm loginif needed. - Run
pnpm installat the repo root after pulling changes so workspace links and runtime deps are present.