Dev & Engineering agent-client-protocoljson-rpczed-editorsession-persistenceslash-commandsstructured-diffsstdio

pi ACP Adapter

Connect the pi coding agent to ACP clients such as Zed.

FollowAgents review · FARS-2.1
Use with care
66/ 100 5-point scale 3.3 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust12 / 29 · 2.1/5

The adapter uses JSON-RPC over stdio and discloses that it spawns a local pi process, reads or writes project files, executes commands, and stores a session mapping at a documented path. Tests also show that tool calls, file locations, and realized post-operation diffs are surfaced to the client. Extension select/confirm requests use one-time allow or reject choices, and release-workflow permissions are narrow. Deductions apply because pi's local filesystem and command capabilities have no adapter-level least-privilege boundary or general per-action confirmation mechanism; handling policies for secrets, logs, prompt content, and model-provider transmission are incomplete; dependencies use ranges and the recommended npx path always fetches the latest release; and there is no automatic rollback for file or command effects. Author, repository, license, and npm provenance configuration provide attribution, but publisher identity remains unverified by the stated enterprise registry.

2Reliability8 / 14 · 2.9/5

Component tests cover event ordering, retries, cancellation, prompt queuing, invalid commands, extension-UI fallback, and diffs derived from realized file contents, showing deliberate handling of ordinary interaction paths. Dependencies, a minimum pi version, and the PATH requirement are documented, while unsupported or retry states are generally made visible. Deductions apply for concrete inconsistencies: README requires Node.js 22+ while package.json declares >=20, and README says there is no separate thought stream while a test expects agent_thought_chunk. The supplied material also does not show broader failure messaging for process startup, protocol mismatch, or provider authentication failures.

3Adaptability14 / 18 · 3.9/5

The audience and primary scenario are clear: using pi through ACP clients, principally Zed, with registry, npx, global, and source installation paths. Capability boundaries are unusually explicit, covering absent filesystem and terminal delegation, stored-but-unwired MCP parameters, unsupported commands, and variable client compatibility, justifying full marks for that criterion. Command syntax, an environment toggle, and invalid-mode handling are demonstrated, but normal-prompt permission triggers and cross-client behavior are not comprehensively specified. Zed-centered development and contradictory Node requirements also reduce environment-fit confidence.

4Convention15 / 18 · 4.2/5

The README is well organized across status, features, prerequisites, installation, configuration, commands, authentication, development, layout, and limitations; installation examples cover multiple deployment paths, so information architecture and install notes are thorough. The limitations are concrete, and MIT metadata agrees with the complete LICENSE, justifying full marks there. Deductions apply because configuration examples alternate between pi and pi-acp server keys, there is no FAQ or systematic troubleshooting section, and release automation plus version 0.0.33 do not substitute for a maintained changelog. An author, issue tracker, repository, and release path identify maintenance channels, but no maintenance policy, support commitment, or team responsibility is stated.

5Effectiveness12 / 13 · 4.6/5

The evidence describes editor-usable output: streamed messages and thoughts, tool status, terminal metadata, file locations, inferred lines, realized before/after diffs, resumable sessions, and cancellation. A dedicated bridge between pi and ACP clients supplies clear marginal value, while two runtime npm dependencies and a no-global-install option keep setup comparatively light; output usability and marginal value are therefore fully supported. Cost-benefit is reduced because the always-latest npx route, separate pi installation, model-service cost, and risks of unrestricted local execution are not quantified or systematically discussed.

6Verifiability5 / 8 · 3.1/5

Many concrete README claims are corroborated across package metadata, workflows, and component tests, including event translation, diffs, locations, permission requests, retries, queuing, and cancellation. Qualifiers such as MVP, best-effort, and varying compatibility generally separate limitations from firm claims. Deductions apply because the supplied evidence omits the core src implementation and lockfile, preventing complete implementation-level traceability; static test text does not establish that tests were executed; and several documentation claims conflict with tests or package metadata, so corroboration and claim separation are not exhaustive.

Evidence confidence: Low Reviewed Sep 17, 2026 Reviewed revision d1cffc047ab3
Before you use it
  • pi reads and writes local files and executes commands directly; the README explicitly says there is no ACP filesystem or terminal delegation boundary, so per-effect client confirmation must not be assumed.
  • Using npx -y pi-acp always loads the latest release while the project warns of minor breaking changes; pin and review a version for stable deployments.
  • The Node.js requirement conflicts between README 22+ and package.json >=20; verify the actually supported runtime before deployment.
  • There is no complete policy for sensitive prompts, API keys, logs, or model-provider data flows; isolate credentials and review pi and provider configuration.
  • File diffs and cancellation are exposed, but no automatic rollback is provided; cancellation does not establish that prior file changes or command side effects are undone.
Review evidence [1][2][3][4][5][6][7][8]
See the full review method →

What does this agent do, and when should you use it?

pi-acp is an adapter between the pi coding agent and Agent Client Protocol clients, with development centered on Zed. It exposes ACP JSON-RPC 2.0 over stdio, launches `pi --mode rpc`, and translates requests and events between the two protocols. The adapter streams assistant messages, maps pi tool activity into ACP tool calls, and can attach file locations, inferred line numbers, and structured edit diffs. It also provides session persistence, file-based and built-in slash commands, pi skill commands, plus startup information and session history in Zed. The project is described as an MVP, with incomplete ACP coverage and potentially varying compatibility outside Zed.

An ACP client sends JSON-RPC 2.0 requests over stdio to pi-acp, which launches pi --mode rpc and translates traffic between the client and the pi subprocess. Assistant output is emitted as ACP agent_message_chunk, while pi tool execution becomes tool_call and tool_call_update. Relative tool paths are resolved against the session cwd; for edit, the adapter snapshots the pre-edit file, tries to infer a 1-based line number from a unique oldText match, and emits a structured oldText/newText diff when possible. pi continues to store sessions under ~/.pi/agent/sessions/..., while pi-acp maintains ~/.pi/pi-acp/session-map.json so session/load can reconnect to them. It also reads commands from ~/.pi/agent/prompts//*.md and <cwd>/.pi/prompts//*.md, implements commands such as /compact, /export, /session, /name, and /steering, and exposes enabled skills as /skill:skill-name.

  1. A Zed user who wants to operate the pi coding agent through the editor's external-agent interface.
  2. A developer who needs live assistant output, tool status, and navigable file locations inside an ACP client.
  3. A user who wants to resume the same pi session files from either Zed or the pi terminal interface.
  4. A team with user-level or project-level Markdown prompt commands that should remain available through an ACP client.
  5. A code-review workflow that benefits from structured edit diffs and best-effort line locations for pi edits.

What are this agent's strengths and limitations?

Pros
  • Provides a direct bridge from ACP JSON-RPC 2.0 to pi --mode rpc, making pi usable from ACP-capable editor clients.
  • Tool updates can include resolved file locations, and edits may include inferred line numbers and structured before-and-after diffs.
  • Session mapping reconnects ACP clients to pi's own session files and supports resuming sessions across the client and terminal.
  • Supports user, project, built-in, and enabled skill commands, preserving existing pi prompt and skill workflows.
  • Offers ACP Registry, npx, global-package, and source-build installation paths.
Limitations
  • The project is explicitly an MVP, may introduce minor breaking changes, and does not implement every ACP feature.
  • Operation depends on Node.js 22+, pi v0.80.4+, a local pi executable, and separately configured model providers or API keys.
  • There is no ACP fs/* or terminal/* delegation; pi reads, writes, and executes directly on the local machine.
  • MCP servers supplied in ACP parameters are stored in session state but are not connected to pi by this adapter.
  • Extension-provided slash commands are unsupported, /model and /clear are unimplemented, and non-Zed client compatibility may vary.

How do you install or deploy this agent?

Install Node.js 22+ and ensure pi v0.80.4+ is available on PATH: npm install -g @earendil-works/pi-coding-agent. Configure pi separately with the chosen model providers and API keys. In Zed, run zed: acp registry and select pi ACP to create a registry-type agent_servers.pi-acp entry. For an installation-free launch, configure agent_servers.pi with "type": "custom", "command": "npx", and "args": ["-y", "pi-acp"]. Alternatively, run npm install -g pi-acp and configure the command as pi-acp; for a source build, run npm install followed by npm run build, then configure the client to execute node /path/to/pi-acp/dist/index.js.

How do you use this agent?

First configure pi's model provider and API credentials, then register pi-acp as an ACP server using one of the documented installation methods. Start it from Zed's external-agent interface to open a session. For ACP Registry authentication, use Zed's Authenticate banner or run pi-acp --terminal-login for interactive setup. Within a session, send coding requests or invoke /compact [instructions...], /autocompact on|off|toggle, /export, /session, /name <name>, /queue all|one-at-a-time, /changelog, /steering, and /follow-up. Set PI_ACP_ENABLE_EMBEDDED_CONTEXT=true in the server environment to advertise embedded-context support; otherwise, unexpected resource blocks are converted into plain-text prompt context.

How does this agent compare with similar options?

Compared with running pi directly in a terminal, pi-acp adds an ACP protocol layer, translated tool events, and an editor-oriented session experience while leaving actual execution to the local pi process. The referenced pi MCP adapter is complementary rather than built in: pi-acp does not itself wire ACP-supplied MCP servers into pi.

FAQ

Does it include a model or model account?
No. Model providers and API keys must be configured separately in pi; availability and cost therefore depend on the selected provider.
Where do filesystem and terminal operations run?
They run through the local pi process. The adapter does not use ACP fs/* or terminal/* delegation, so those operations are not isolated or brokered by the client through those ACP interfaces.
Can it connect MCP servers supplied by the ACP client?
Not directly. Those server parameters are retained in session state but are not wired into pi; the documentation points to the separate pi MCP adapter as an option.
What happens to resource blocks when embedded context is disabled?
Compliant clients should avoid sending them, but pi-acp degrades gracefully by converting any received resource blocks into plain-text prompt context.
Can sessions be resumed between Zed and terminal pi?
Yes. pi-acp maps to pi's session files, Zed supports the relevant session history starting with v0.225.0, and ACP sessions can also be resumed directly in pi.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents