feat(harness): add pi (Pi coding agent) descriptor #18

Merged
pti merged 1 commit from feat-harness-pi into main 2026-07-07 17:10:21 +02:00
Owner

Adds the 8th harness — Pi (pi.dev) — closing the last descriptor from phase 3.

Findings

  • Pi has no native MCP. It relies on the third-party pi-mcp-adapter.
  • The adapter reads mcpServers (top-level), remote server via url + headers: {Authorization: "Bearer …"}. Config paths include .mcp.json (collides with Claude) and the Pi-specific .pi/mcp.json.

Descriptor

  • Writes .pi/mcp.json (project) / ~/.pi/agent/mcp.json (global) — Pi-specific, avoids stomping Claude's .mcp.json.
  • Shape: mcpServers.wraptool = {url, headers:{Authorization: Bearer}}. AuthHeader.
  • Registered in order/help/--harness flags; usable via init --harness pi and up --harness pi.

Verified

init --harness pi.pi/mcp.json with the mcpServers/url shape (+ Bearer with a token). Full suite + lint clean.

Caveat

Requires pi-mcp-adapter installed; the remote-entry shape is from the adapter README, not tested against a live Pi. Easy to tweak if your adapter version differs (e.g. needs a type field or the auth/bearerToken form).

🤖 Generated with Claude Code

Adds the 8th harness — Pi (pi.dev) — closing the last descriptor from phase 3. ## Findings - **Pi has no native MCP.** It relies on the third-party **[pi-mcp-adapter](https://github.com/nicobailon/pi-mcp-adapter)**. - The adapter reads `mcpServers` (top-level), remote server via `url` + `headers: {Authorization: "Bearer …"}`. Config paths include `.mcp.json` (collides with Claude) and the Pi-specific `.pi/mcp.json`. ## Descriptor - Writes **`.pi/mcp.json`** (project) / `~/.pi/agent/mcp.json` (global) — Pi-specific, avoids stomping Claude's `.mcp.json`. - Shape: `mcpServers.wraptool = {url, headers:{Authorization: Bearer}}`. `AuthHeader`. - Registered in `order`/help/`--harness` flags; usable via `init --harness pi` and `up --harness pi`. ## Verified `init --harness pi` → `.pi/mcp.json` with the `mcpServers`/`url` shape (+ Bearer with a token). Full suite + lint clean. ## Caveat Requires `pi-mcp-adapter` installed; the remote-entry shape is from the adapter README, not tested against a live Pi. Easy to tweak if your adapter version differs (e.g. needs a `type` field or the `auth`/`bearerToken` form). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(harness): add pi (Pi coding agent) descriptor
All checks were successful
Lint / lint (pull_request) Successful in 15s
08477dc734
Adds the eighth harness. Pi has no native MCP; the third-party pi-mcp-adapter
(github.com/nicobailon/pi-mcp-adapter) reads its config. Write the Pi-specific
.pi/mcp.json (project) / ~/.pi/agent/mcp.json (global) so it never collides with
claude's .mcp.json, using the adapter's remote shape: mcpServers → {url,
headers:{Authorization: Bearer}}. Auth = AuthHeader (the adapter supports a
static bearer header).

Verified: `init --harness pi` writes .pi/mcp.json with the mcpServers/url shape
(+ Bearer when a token is set). Registered in order/help/flags. Tests + lint
clean.

Caveat: Pi requires pi-mcp-adapter installed; the exact remote-entry shape is
from the adapter README, not tested against a live Pi.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pti merged commit 79cc3f7677 into main 2026-07-07 17:10:21 +02:00
pti deleted branch feat-harness-pi 2026-07-07 17:10:21 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pti/wraptool!18
No description provided.