Skip to content

feat(plugin): pi agent support — one-liner install#24

Merged
kellenff merged 1 commit into
mainfrom
add-pi-plugin-oneliner
Jul 7, 2026
Merged

feat(plugin): pi agent support — one-liner install#24
kellenff merged 1 commit into
mainfrom
add-pi-plugin-oneliner

Conversation

@kellenff

@kellenff kellenff commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Adds a pi extension at repo root (multi-agent layout, parallel to the Claude plugin) that bootstraps yactt on first session and registers it with pi-mcp-adapter.

End user story

pi install git:github.com/kellenff/yactt

That's it. First session:

  • plugins/yactt/scripts/install.sh fetches yactt (same TOFU + SHA256 chain as the Claude plugin).
  • Installs npm:pi-mcp-adapter if not already present in ~/.pi/agent/settings.json.
  • Writes a yactt MCP server entry to ~/.pi/agent/mcp.json (idempotent — preserves user-added servers).

Second session onward: no-op.

What's in this MR

  • pi-extension/index.js — ~57 LOC extension
  • pi-extension/package.json — declares pi.extensions entry
  • pi-extension/test/extension.test.js — 4 smoke tests (52ms)
  • skills/code-explore/SKILL.md — pi-format skill at repo root
  • README.md + plugins/yactt/README.md — install section updated

Trust

Reuses the Claude plugin's scripts/install.sh unchanged — same SHA256 verification, same TOFU (version, sha256) record at ~/.local/share/yactt/known-good, same SLSA L3 attestations. The pi extension adds zero new attack surface; it just calls the existing installer and writes a JSON file.

Test

$ node --test pi-extension/test/extension.test.js
✔ session_start writes mcp.json with the yactt server
✔ session_start is idempotent and preserves user-added servers
✔ session_start tolerates a corrupt mcp.json
✔ ensureMcpAdapter is a no-op when settings already lists pi-mcp-adapter
ℹ tests 4
ℹ pass 4

Adds a pi extension at repo root that bootstraps yactt on first session
and registers it with pi-mcp-adapter. Mirrors the Claude plugin's TOFU
+ SHA256 trust chain by reusing plugins/yactt/scripts/install.sh.

The pi one-liner:
  pi install git:github.com/kellenff/yactt

What the extension does on first session_start:
- Runs the shared installer (no-op when yactt is current)
- Installs pi-mcp-adapter if not already in settings
- Writes a yactt MCP server entry to ~/.pi/agent/mcp.json (idempotent)

Subsequent sessions are no-ops.

The code-explore skill is published at repo root with pi-format
frontmatter so it's auto-discovered by pi.
@kellenff
kellenff merged commit 4315017 into main Jul 7, 2026
5 checks passed
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.

1 participant