Skip to content

Comments

docs(pi): add experimental pi support (Phase 1)#500

Open
sheurich wants to merge 4 commits intoobra:mainfrom
sheurich:feature/pi-support
Open

docs(pi): add experimental pi support (Phase 1)#500
sheurich wants to merge 4 commits intoobra:mainfrom
sheurich:feature/pi-support

Conversation

@sheurich
Copy link

@sheurich sheurich commented Feb 17, 2026

Summary

Add experimental support for pi (@mariozechner/pi-coding-agent).

Pi's native package system discovers skills from the skills/ directory automatically — no plugins, hooks, bootstrap scripts, or CLI wrappers needed. This makes the integration lightweight: documentation only, zero integration code.

Changes

  • .pi/INSTALL.md — Machine-readable install instructions (matches .codex/INSTALL.md and .opencode/INSTALL.md pattern)
  • docs/README.pi.md — Full guide: installation options, tool mapping (Claude Code → pi), architecture notes, troubleshooting, known differences
  • README.md — Add pi section alongside Codex and OpenCode

Why no tests or integration code?

Unlike Codex and OpenCode, pi needs no repo-local glue:

  • No plugin/hook code — Pi discovers skills/ by convention. The OpenCode plugin (.opencode/plugins/superpowers.js) and Codex CLI (.codex/superpowers-codex) exist because those harnesses need custom bootstrap injection. Pi doesn't.
  • No tests — The existing test suites (tests/opencode/, tests/claude-code/) test repo-local integration code (skills-core.js, plugin loading, hook behavior). Since pi adds no integration code, there's nothing repo-local to test. Skill frontmatter parsing is already covered by the OpenCode test suite.

Tool mapping

Claude Code Pi Notes
Skill tool read / /skill:name Pi loads SKILL.md via read
TodoWrite Markdown checklists instead
Task (subagents) subagent Single/parallel/chain modes
Read, Write, Edit, Bash Same names Direct equivalents

Phase 1 of #435

This PR covers Phase 1 (docs). Phase 2 (integration and workflow mapping) is tracked separately in the issue.

Summary by CodeRabbit

  • Documentation
    • Added a step-by-step installation guide for the Superpowers Pi package covering prerequisites, install and update commands, verification steps, loading a sample skill, and uninstall instructions.
    • Inserted a new "Pi (experimental)" section in the README with quick-install examples and usage notes.
    • Published comprehensive Pi integration docs detailing setup options, how skills are discovered/loaded, creating personal/project skills, troubleshooting, and known differences.

@coderabbitai
Copy link

coderabbitai bot commented Feb 17, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds experimental Pi support documentation: new .pi/INSTALL.md, docs/README.pi.md, and two insertions in README.md that describe Pi installation, skill discovery/loading, verification, updating, and uninstalling. All changes are documentation-only.

Changes

Cohort / File(s) Summary
Pi install guide
.pi/INSTALL.md
New step-by-step Pi installation guide: prerequisites, pi install <repo> remote install, alternative local clone, pi list verification, sample skill load, update (pi update / git pull), and uninstall (pi remove).
Pi docs
docs/README.pi.md
Comprehensive Pi documentation: quick install, install options (git package, local path, symlink), skill discovery & loading architecture, personal/project skill locations, mapping to Claude Code concepts, usage patterns, troubleshooting, update/uninstall instructions, and known differences.
README integration
README.md
Inserted "Pi (experimental)" installation sections in two places with example pi install https://github.com/obra/superpowers and link to docs/README.pi.md.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related issues

Poem

🐰 I hopped through docs both new and bright,
Pi finds skills at morning light,
Clone or install, then pi list to see,
Load a skill, update, or set it free,
Carrots, commits, and quiet glee 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding documentation for experimental Pi support in Phase 1.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.pi/INSTALL.md (1)

3-6: Prerequisites omit the Pi installation command itself.

Since this file doubles as human-readable documentation, consider adding the npm install step so new users have a fully self-contained guide. npm install -g @mariozechner/pi-coding-agent`` is the command that installs Pi.

📝 Suggested addition
 ## Prerequisites
 
+- [Node.js](https://nodejs.org/) (for `npm install -g `@mariozechner/pi-coding-agent``)
 - [Pi](https://github.com/mariozechner/pi-coding-agent) installed
 - Git
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.pi/INSTALL.md around lines 3 - 6, Add the missing npm install step to the
Prerequisites section of .pi/INSTALL.md so the guide is self-contained: under
the "Prerequisites" heading insert the global install command for Pi (npm
install -g `@mariozechner/pi-coding-agent`) and ensure it appears above or
alongside the existing Git bullet so new users can copy/paste the full
installation step.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.pi/INSTALL.md:
- Around line 36-38: Replace the ambiguous example `pi update` in the HTTPS
install path with a source-specific command to avoid updating all installed
packages: change the code block that currently shows `pi update` to `pi update
https://github.com/obra/superpowers` so the example updates only that repository
rather than all globally installed Pi packages.

---

Nitpick comments:
In @.pi/INSTALL.md:
- Around line 3-6: Add the missing npm install step to the Prerequisites section
of .pi/INSTALL.md so the guide is self-contained: under the "Prerequisites"
heading insert the global install command for Pi (npm install -g
`@mariozechner/pi-coding-agent`) and ensure it appears above or alongside the
existing Git bullet so new users can copy/paste the full installation step.

Add documentation for using superpowers with pi coding agent:

- .pi/INSTALL.md: machine-readable install instructions
- docs/README.pi.md: full guide with tool mapping, architecture,
  troubleshooting, and known differences from Claude Code
- README.md: add pi section alongside Codex/OpenCode

Pi discovers skills from the skills/ directory via its native package
system. No plugins, hooks, bootstrap scripts, or CLI wrappers needed.

Refs: obra#435
@obra
Copy link
Owner

obra commented Feb 20, 2026

Does pi have a way to autoload the using-superpowers bootstrap at startup?

Bare `pi update` updates all installed packages. Specify the source
URL so the example only updates superpowers.
@sheurich
Copy link
Author

Pi doesn't have a hooks system like Claude Code's SessionStart. The closest equivalent is a Pi extension using the before_agent_start event, which can inject content into the system prompt on every turn.

A small extensions/bootstrap.ts in the superpowers package would replicate what hooks/session-start.sh does — Pi auto-discovers extensions/ in packages, so it would work with zero user config after pi install.

This is a code change, not documentation. I'll track it as Phase 2 work. The docs already note the limitation under "Known Differences from Claude Code":

No hooks system — Pi doesn't inject bootstrap content on session start.

@sheurich
Copy link
Author

Re: CodeRabbit's nitpick about adding npm install -g @mariozechner/pi-coding-agent to prerequisites —

Declining. This INSTALL.md is reached after the user already has Pi (they found it via pi install). Adding Pi's own install command is circular. The prerequisite link to the Pi repo is sufficient for anyone who arrives here another way.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.pi/INSTALL.md:
- Around line 48-52: The Uninstalling section only shows the HTTPS removal
command and lacks the local-clone variant referenced earlier under "Alternative:
Local Clone"; update the "Uninstalling" section (heading "Uninstalling" and the
existing example `pi remove https://github.com/obra/superpowers`) to include an
additional example for removing an install performed from a local path, e.g. add
a short sentence "Or, if installed from a local path:" followed by the command
`pi remove /path/to/superpowers` so users who followed the local-clone
instructions can remove that installation.

---

Duplicate comments:
In @.pi/INSTALL.md:
- Around line 38-40: The example now shows using "pi update
https://github.com/obra/superpowers" which fixes the earlier problem of
unintentionally updating all packages; update the documentation to ensure the
"pi update" examples explicitly show both behaviors — (1) "pi update" updates
all installed packages and (2) "pi update <source-url>" updates a single package
— by keeping the explicit URL example "pi update
https://github.com/obra/superpowers" and adding a short note clarifying the
difference in behavior for the plain "pi update" command.

sheurich and others added 2 commits February 20, 2026 07:08
The doc covers two install paths (HTTPS and local clone) but only
showed the HTTPS removal command.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants