---
slug: "siddr-pi-review"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/sids/pi-extensions@main/README.md"
repo: "https://github.com/sids/pi-extensions"
source_file: "README.md"
branch: "main"
---
# pi-extensions

> ⚠️ **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.

## Repository layout

- [`plan-md/`](https://github.com/sids/pi-extensions/tree/HEAD/plan-md/) – Branch-based planning workflow with persisted plan files
- [`task-subagents/`](https://github.com/sids/pi-extensions/tree/HEAD/task-subagents/) – Standalone `subagents` / `steer_subagent` delegation tools with recursion disabled in spawned child sessions
- [`diff-cmux/`](https://github.com/sids/pi-extensions/tree/HEAD/diff-cmux/) – cmux browser diff review with continuous changed-file streaming, grouped sidebar navigation, and send-to-editor comments
- [`diff-review/`](https://github.com/sids/pi-extensions/tree/HEAD/diff-review/) – Browser diff review using Pierre diffs/trees with send-to-editor comments
- [`review/`](https://github.com/sids/pi-extensions/tree/HEAD/review/) – Interactive review mode with target selection, structured findings capture, and triage
- [`side/`](https://github.com/sids/pi-extensions/tree/HEAD/side/) – Ephemeral floating read-only side chat with summarized and live parent-session context
- [`answer/`](https://github.com/sids/pi-extensions/tree/HEAD/answer/) – Interactive Q&A workflow for extracting questions and sending compiled answers
- [`mention-skills/`](https://github.com/sids/pi-extensions/tree/HEAD/mention-skills/) – `$skill-name` autocomplete with submit-time expansion to `SKILL.md` paths
- [`prompt-save/`](https://github.com/sids/pi-extensions/tree/HEAD/prompt-save/) – Session-wide saved prompt picker with save, restore, copy, and delete shortcuts
- [`prompt-thinking/`](https://github.com/sids/pi-extensions/tree/HEAD/prompt-thinking/) – `^thinking-level` autocomplete with single-prompt thinking overrides
- [`openai-params/`](https://github.com/sids/pi-extensions/tree/HEAD/openai-params/) – OpenAI settings UI for fast mode and verbosity request parameters
- [`fetch-url/`](https://github.com/sids/pi-extensions/tree/HEAD/fetch-url/) – URL fetch tool with main-content extraction and markdown/html/raw output
- [`web-search/`](https://github.com/sids/pi-extensions/tree/HEAD/web-search/) – Brave Search `web_search` tool for single or multi-query result sets
- [`status/`](https://github.com/sids/pi-extensions/tree/HEAD/status/) – Live status widget for model, repo, timing, and PR context
- [`tool-display/`](https://github.com/sids/pi-extensions/tree/HEAD/tool-display/) – Compact built-in tool rendering overrides for `read`, `write`, `edit`, `bash`, `grep`, `find`, and `ls`

## Documentation

See each extension’s README for setup and usage. Developer notes live in `AGENTS.md`.

## Local development and publishing notes

- Keep pi runtime packages in each extension's `peerDependencies` (`@earendil-works/pi-*`, `typebox` where needed). This is what published npm packages rely on.
- Keep the same runtime packages in the workspace root `devDependencies` so local symlinked extensions resolve the same imports during development.
- Run `pnpm run check:peer-runtime` before publishing. This verifies that all extension `peerDependencies` are represented in root `devDependencies`.
- Run `pnpm run check:package-boundaries` before publishing. This verifies that packaged runtime source files stay within their package boundaries.
- Use `scripts/publish-npmjs.sh --all --only-unpublished` to publish only package versions that are not already on npm (`--dry-run` is supported). Outside dry-run mode, the script checks npm auth first and runs `npm login` if needed.
- Run `pnpm install` at the repo root after pulling changes so workspace links and runtime deps are present.
