Skip to content

feat: add Pi coding agent support (-a pi)#1

Open
Shanvit7 wants to merge 4 commits intomainfrom
feat/pi-agent-support-pr
Open

feat: add Pi coding agent support (-a pi)#1
Shanvit7 wants to merge 4 commits intomainfrom
feat/pi-agent-support-pr

Conversation

@Shanvit7
Copy link
Copy Markdown
Owner

@Shanvit7 Shanvit7 commented Apr 6, 2026

Summary

Adds Pi (pi / omegon binary) as a supported agent backend for expect.

What changed

packages/agent

  • detect-agents.ts — registers pi with binaries ["pi", "omegon"] and skill dir .pi/skills
  • acp-client.ts — adds AcpAdapter.layerPi: reads ~/.pi/agent/auth.json to check auth, resolves pi-acp adapter package at runtime, and adds a per-adapter inactivityTimeoutMs field (pi's extended-thinking mode can silently reason for several minutes before emitting its first token — its timeout is raised to 10 min vs the 3 min default for other agents)
  • agent.ts — wires Agent.layerPi and adds "pi" to the AgentBackend union

packages/shared

  • models.ts — adds "pi" to AgentProvider literals and display names
  • launched-from.ts — adds PI_CODING_AGENT_DIR env var for auto-detection

Tests

  • detect-agents.test.ts — detects pi via pi binary, detects via omegon fallback
  • acp-adapter.test.tslayerPi resolves adapter, unauthenticated/not-installed error messages

Runtime dependency

Pi's ACP adapter is the published pi-acp npm package (^0.0.24), loaded at runtime via require.resolve (same pattern as other ACP adapters). No bundling changes needed.

Usage

expect -a pi -m "smoke test the homepage" -u http://localhost:3000
# or let it read the git diff automatically:
expect -a pi -u http://localhost:3000

Tested

Ran against a live Next.js project with real git changes. Pi generated a 15-step test plan from the diff, executed all steps in ~4 minutes, and reported 8 passed / 7 failed with a session replay URL.

@Shanvit7
Copy link
Copy Markdown
Owner Author

Shanvit7 commented Apr 6, 2026

Github base branch sideeffect. Keepin main fork clean

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