Skip to content

feat: add first-class Pi target with MCPorter + subagent compatibility#181

Merged
kieranklaassen merged 1 commit intoEveryInc:mainfrom
gvkhosla:feat/pi-target
Feb 13, 2026
Merged

feat: add first-class Pi target with MCPorter + subagent compatibility#181
kieranklaassen merged 1 commit intoEveryInc:mainfrom
gvkhosla:feat/pi-target

Conversation

@gvkhosla
Copy link
Contributor

PR: Add first-class Pi target with MCPorter + subagent compatibility

Hi Every team — thank you for building and sharing Compound Engineering. This PR is an additive compatibility contribution to help teams run the same workflow in Pi.

Why

Many teams love the Compound Engineering workflow but use Pi as their local agent runtime. This PR ports the workflow in a way that keeps your design intact:

  • preserves plan → work → review → compound
  • keeps Claude-native behavior unchanged
  • adds Pi as an optional conversion/install target

What this PR adds

1) New pi target

  • --to pi support in converter/install flows
  • Pi bundle writer for prompts, skills, extensions
  • Pi sync support (sync --target pi)

2) Compatibility extension for Pi

Adds generated tools to bridge Claude patterns to Pi:

  • ask_user_question
  • subagent (single / parallel / chain)
  • mcporter_list
  • mcporter_call

3) MCP interoperability via MCPorter

Instead of assuming Claude runtime MCP behavior, Pi uses MCPorter:

  • writes MCPorter config for Pi
  • routes MCP-style calls through MCPorter CLI

4) Command semantics mapping

  • Task agent(args) → explicit subagent instruction in Pi prompts
  • AskUserQuestionask_user_question

Scope / Safety

  • additive only (new Pi target)
  • no breaking change to Claude Code behavior
  • existing targets (Codex/OpenCode/etc.) remain intact

Validation

  • converter/writer/CLI tests added for Pi target
  • existing suite still passes
  • manual runtime checks validated in Pi:
    • workflows prompt loading
    • subagent single/parallel/chain
    • MCPorter listing/calling

Notes

If useful for upstream, I’m happy to keep maintaining the Pi compatibility surface in a downstream package as well and sync changes quickly.

Thank you again to Every + Kieran for the original system.

@gvkhosla
Copy link
Contributor Author

Thanks for taking a look 🙏

Quick review map:

  1. Entry points
  • src/targets/index.ts → adds pi target registration
  • src/commands/install.ts and src/commands/convert.ts--to pi + --pi-home
  • src/commands/sync.tssync --target pi
  1. Pi implementation
  • src/converters/claude-to-pi.ts
  • src/targets/pi.ts
  • src/templates/pi/compat-extension.ts
  • src/sync/pi.ts
  1. Docs + validation
  • README.md Pi install/sync sections
  • New tests: tests/pi-converter.test.ts, tests/pi-writer.test.ts, tests/sync-pi.test.ts
  • CLI coverage for Pi: tests/cli.test.ts

All tests pass locally in this branch (bun test). Happy to split this further if you prefer a narrower PR (e.g. target+convert/install first, then sync, then docs/tests).

@kieranklaassen kieranklaassen merged commit 25fa591 into EveryInc:main Feb 13, 2026
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