ACP
Elph speaks ACP JSON-RPC 2.0 over stdio. One process speaks one protocol version.
sh
elph acp --stdio # ACP v1 (stable)
elph acp --stdio --experimental # ACP v2 (draft)
elph acp --setup # interactive provider login for editors Use v1 for Zed and editors that speak ACP 1. Use --experimental only when the client sends protocolVersion: 2.
Shared rules
- Working directory must be an absolute path.
- Shell runs locally (
shell_exec/shell_use). Elph does not call clientterminal/*. - Writes stay local. Elph does not call client
fs/write_text_file. - v1 advertises
session/deleteandadditionalDirectories. Tool calls startpending, thenin_progress. - v2 prompt acks immediately; completion is a single idle
state_updatewithstopReason. Usage reports context window size, not a copy ofused. - Privileged methods (
session/new,session/prompt, and so on) need credentials.initialize, list, close, delete, and cancel do not. - Existing env /
auth.jsonkeys allow privileged methods without a separate authenticate call. - Logout is connection-scoped; it does not delete
auth.json.
Tool approval uses session/request_permission (allow once / session / all / reject).