Created
August 10, 2026 23:24
-
-
Save senrecep/87fa8452231b02f793adb364a8224006 to your computer and use it in GitHub Desktop.
pi coding agent setup: full extension set migrated from Claude Code (27 packages, vetted)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| # | |
| # pi-setup.sh | |
| # | |
| # Sets up the pi coding agent (github.com/earendil-works/pi) with the | |
| # extension set I use after migrating from Claude Code. | |
| # | |
| # Where these picks come from: a full scan of the pi.dev catalog | |
| # (5,330 packages, August 2026) mapped against my Claude Code setup, | |
| # then an npm check on every candidate before installing. None of them | |
| # ship install-time scripts, the maintainers match the catalog authors, | |
| # and every repo exists and is active. Three packages failed that check | |
| # and are listed at the bottom with the reasons. | |
| # | |
| # Everything installs globally into ~/.pi/agent. | |
| # Undo any of it with: pi remove npm:<name> | |
| set -euo pipefail | |
| if ! command -v pi >/dev/null 2>&1; then | |
| echo "pi is not installed. On macOS: brew install pi" | |
| echo "Otherwise see https://github.com/earendil-works/pi" | |
| exit 1 | |
| fi | |
| install() { | |
| echo "==> $1" | |
| pi install "npm:$1" | |
| } | |
| # --------------------------------------------------------------- | |
| # Core replacements for what Claude Code had built in. | |
| # Pi's core only ships seven tools (read, bash, edit, write, grep, | |
| # find, ls). Everything else below fills a gap on purpose left open. | |
| # --------------------------------------------------------------- | |
| # The one package that matters most. Bridges an existing MCP config | |
| # into pi, so serena, context7, exa, github-mcp and the rest keep | |
| # working. Without it, no MCP server does anything. | |
| install pi-mcp-adapter | |
| # Web search, URL fetching, PDF extraction, YouTube transcripts, repo | |
| # cloning. Replaces WebSearch and WebFetch. Needs a provider key | |
| # (Brave, Tavily, Jina and others are supported). | |
| install pi-web-access | |
| # Subagent delegation, the Agent/Task equivalent. Same author as | |
| # pi-mcp-adapter and pi-web-access (nicobailon), whose packages are | |
| # built to work together. | |
| install pi-subagents | |
| # Fan-out orchestration with real per-agent model routing: an agent() | |
| # call accepts model: 'provider/modelId', so the main session can run | |
| # on an expensive model while bulk work goes to a cheap one. This is | |
| # the piece that makes a multi-provider setup useful in practice. | |
| install @quintinshaw/pi-dynamic-workflows | |
| # Durable background shell tasks. Pi core has no background bash and | |
| # the docs suggest tmux; this adds it as a proper tool instead. | |
| install pi-background-tasks | |
| # Todo list rendered as a live overlay. Survives /reload and | |
| # conversation compaction, which is the failure mode that makes most | |
| # todo tools useless. | |
| install @juicesharp/rpiv-todo | |
| # Structured questions with typed options instead of the model | |
| # guessing. Same author as the todo package, designed as a pair. | |
| install @juicesharp/rpiv-ask-user-question | |
| # Read-only /plan mode, Codex style. | |
| install @narumitw/pi-plan-mode | |
| # LSP, linters, formatters and type checking in one package. Replaces | |
| # the six separate LSP plugins I ran under Claude Code. | |
| install pi-lens | |
| # Persistent memory plus session search plus secret scanning before | |
| # anything gets stored. SQLite FTS5 under the hood. | |
| install pi-hermes-memory | |
| # Deterministic path-level permissions enforced across every tool at | |
| # once: read, bash (cat/grep included), edit, and MCP. Symlinks are | |
| # resolved before the check, so they can't be used to slip past a | |
| # deny rule. I want this before pointing any cheap "contributor" | |
| # tier model at a repo, because telling a model "don't read .env" | |
| # in a prompt is a request, not enforcement. | |
| install @gotgenes/pi-permission-system | |
| # YAML-defined hooks: tool guards, session hooks, notifications. | |
| install pi-yaml-hooks | |
| # Blocks destructive git and filesystem commands before they execute. | |
| # Cheap insurance for autonomous runs. | |
| install cc-safety-net | |
| # Browser automation as a native tool. The Playwright replacement. | |
| install pi-agent-browser-native | |
| # Status bar: model, thinking level, context usage with color | |
| # warnings at 70% and 90%, token and cost figures, git status. | |
| # Closest thing to the HUD I had in Claude Code. | |
| install pi-powerline-footer | |
| # 73 agent skills covering process discipline (debugging, TDD, plan | |
| # writing). The superpowers equivalent in the pi ecosystem. | |
| install bigpowers | |
| # Reviews recently changed code for clarity and consistency. The | |
| # /simplify equivalent. | |
| install pi-simplify | |
| # Session search and management, plus its own compaction handling. | |
| # Overlaps a bit with pi-hermes-memory on session search; if the two | |
| # ever inject duplicate memory context, I'll drop one. | |
| install pi-goosedump | |
| # Interactive git worktree management and workspace switching. | |
| install @narumitw/pi-worktree | |
| # Cron-style recurring and one-shot prompts. I picked this over | |
| # @amaster.ai/pi-task-scheduler, which had eight maintainers I | |
| # couldn't place and a repo whose name didn't match the package. | |
| # This one is by tintinweb, a known security researcher. | |
| install pi-schedule-prompt | |
| # Autonomous goal loop: give it an objective, it keeps working until | |
| # done. The autopilot/ralph equivalent. | |
| install @narumitw/pi-goal | |
| # Semantic codebase search: embeddings, symbol discovery, call graph. | |
| # Replaces what serena and codegraph did for me. | |
| install opencode-codebase-index | |
| # Google NotebookLM bridge: notebooks, sources, chat, Studio | |
| # artifacts. | |
| install @bacnh85/pi-notebooklm | |
| # --------------------------------------------------------------- | |
| # HUD and observability add-ons. | |
| # --------------------------------------------------------------- | |
| # Per-provider usage and rate-limit budgets via /usage, with a live | |
| # statusline widget. With several providers configured, this is how | |
| # I see which quota is close to running out. | |
| install @sreetej510/pi-usage | |
| # Usage statistics dashboard across pi sessions. | |
| install @tmustier/pi-usage-extension | |
| # Inspect the system prompt and the full LLM context in scrollable | |
| # overlay popups. Useful for figuring out where the tokens went. | |
| install @agnishc/edb-context-viewer | |
| # Live event stream and a local web dashboard for pi sessions, for | |
| # watching an agent from outside the terminal. | |
| install @spences10/pi-observability | |
| echo | |
| echo "Done. Restart pi to activate everything." | |
| echo "Check the result with: pi list" | |
| # --------------------------------------------------------------- | |
| # Deliberately NOT installed, and why: | |
| # | |
| # @amaster.ai/pi-task-scheduler | |
| # Eight maintainers with no track record I could find, and the | |
| # linked repo is just named "pi". pi-schedule-prompt covers the | |
| # same ground. | |
| # | |
| # pi-code, pi-cc-extensions | |
| # Both bundle their own todo, memory, web and subagent tools. | |
| # Installing them next to the dedicated packages above would | |
| # register duplicate tools. | |
| # | |
| # @vigolium/piolium | |
| # 480K monthly downloads for a package that was 18 days old at | |
| # v0.0.13. Those numbers don't add up, so it stays out until | |
| # someone audits the repo. | |
| # | |
| # Remaining manual steps after this script: | |
| # 1. Connect providers: /login inside pi, or export API keys | |
| # (ANTHROPIC_API_KEY, ZAI_API_KEY, KIMI_API_KEY, ...). | |
| # 2. Point pi-mcp-adapter at your existing MCP config. | |
| # 3. Pick a search provider key for pi-web-access. | |
| # 4. Add deny rules to @gotgenes/pi-permission-system for secret | |
| # files (.env, appsettings*.json) before routing work to any | |
| # data-sharing model tier. | |
| # --------------------------------------------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment