Skip to content

feat: add Pi coding agent support#20

Merged
bruno-garcia merged 2 commits intomainfrom
feat/pi-support
Feb 19, 2026
Merged

feat: add Pi coding agent support#20
bruno-garcia merged 2 commits intomainfrom
feat/pi-support

Conversation

@bruno-garcia
Copy link
Member

@bruno-garcia bruno-garcia commented Feb 19, 2026

What

Adds Pi as a supported agent. Pi is a coding agent CLI that uses the Agent Skills standard but discovers skills from .pi/skills/ (project) and ~/.pi/agent/skills/ (user) rather than .agents/skills/ directly.

Like Claude Code and Cursor, it needs symlinks from its config directory to .agents/skills/.

Changes

  • src/agents/definitions/pi.ts — Agent definition with skills paths, MCP serializer, no hooks support
  • src/agents/registry.ts — Register pi in the agent list
  • src/agents/paths.ts — User-scope MCP target (~/.pi/agent/mcp.json)
  • Tests — Serializer, paths, and skill discovery tests (all passing)

How it works

Feature Pi
Skills (project) .pi/skills/ ← symlink to .agents/skills/
Skills (user) ~/.pi/agent/skills/ ← symlink to ~/.agents/skills/
MCP (project) .pi/mcp.json (mcpServers key)
MCP (user) ~/.pi/agent/mcp.json
Hooks Not supported

Test results

All 345 tests pass locally, lint clean.


Hey @dcramer 👋 — Bruno's AI agent here. I tried to open this PR the polite human way but kept getting SAML-blocked, which is ironic given I'm here to make agents work better together. Anyway, figured dotagents should know about Pi — it's like Claude Code's cooler terminal cousin who just wants to read the same skills everyone else gets. 🤝

Pi (https://github.com/mariozechner/pi) discovers skills from
.pi/skills/ (project) and ~/.pi/agent/skills/ (user). Like Claude
Code and Cursor, it needs symlinks from its config directory to
.agents/skills/.

This adds Pi as a supported agent with:
- Skills symlinks (.pi/skills -> .agents/skills)
- MCP config at .pi/mcp.json (used by pi-mcp-adapter)
- User-scope MCP at ~/.pi/agent/mcp.json
- Tests for serializers, paths, and skill discovery

Co-Authored-By: Claude Opus 4.6 <noreply@pi.dev>
Generated-By: pi 0.52.12
Copilot AI review requested due to automatic review settings February 19, 2026 00:59
@vercel
Copy link

vercel bot commented Feb 19, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dotagents Ready Ready Preview, Comment Feb 19, 2026 1:06am

Request Review

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds Pi as a supported coding agent in the agents subsystem, enabling dotagents to manage Pi’s skills symlinks and MCP configuration locations/serialization.

Changes:

  • Added a new pi agent definition (skills paths, MCP config spec, MCP server serializer; hooks unsupported).
  • Registered pi in the agent registry and updated registry tests accordingly.
  • Added user-scope MCP target resolution for Pi (~/.pi/agent/mcp.json) with corresponding tests.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/agents/registry.ts Registers the new pi agent in the global agent list.
src/agents/registry.test.ts Extends registry tests to include pi and validates Pi’s MCP serialization + hooks unsupported behavior.
src/agents/paths.ts Adds Pi’s user-scope MCP target path mapping.
src/agents/paths.test.ts Tests Pi’s user MCP target and skill symlink parent directories.
src/agents/definitions/pi.ts Introduces the Pi agent definition (paths + MCP serialization + hooks unsupported).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Use httpServer() for HTTP servers (Pi handles URLs natively, no mcp-remote)
- Use envRecord() for env var mapping (consistent with other agents)
- Update test to match native HTTP serialization
@bruno-garcia
Copy link
Member Author

Review comments addressed

Comment Author Verdict Action
Headers silently dropped for HTTP servers sentry[bot] 👍 Valid Fixed: use httpServer() helper — Pi handles URLs natively, no mcp-remote needed
HTTP headers silently dropped by mcp-remote proxy cursor[bot] 👍 Valid Same fix as above
Duplicated envRecord helper logic inline cursor[bot] 👍 Valid Fixed: now uses envRecord() from helpers.ts
Manual env map instead of envRecord Copilot 👍 Valid Same fix as above

All 4 comments addressed in one commit. Tests still passing (345/345).

@dcramer
Copy link
Member

dcramer commented Feb 19, 2026

Do they really not support the agents standard?????

@bruno-garcia
Copy link
Member Author

we symlink for .claude and .cursor.. here's .pi
I guess that's the standard, have your own

@dcramer
Copy link
Member

dcramer commented Feb 19, 2026

It’s not - most people support .agents. Claude is an edge case

@bruno-garcia bruno-garcia merged commit 170aac5 into main Feb 19, 2026
16 checks passed
@bruno-garcia bruno-garcia deleted the feat/pi-support branch February 19, 2026 01:56
bruno-garcia added a commit that referenced this pull request Feb 19, 2026
bruno-garcia added a commit that referenced this pull request Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments