Editor Integrations
Integrating Ada with editors through Agent Client Protocol.
Overview
Ada supports editor integration through Agent Client Protocol (ACP). Editors launch Ada locally and communicate with it over JSON-RPC on stdin/stdout.
ada acp start
ACP is integrated into the Ada Rust CLI and backed by the shared Rust Lattice runtime. It is not implemented by the retired TypeScript ACP package.
Supported Pattern
| Item | Value |
|---|---|
| User-facing command | ada acp start |
| Transport | stdio |
| Runtime | Rust Ada CLI / Lattice runtime |
| Remote clients | Not supported as a stable Lovelace ACP contract |
| Logs | stderr or file logs, never protocol stdout |
Zed
Add Ada as an ACP agent server:
{
"agent_servers": {
"Ada": {
"command": "ada",
"args": ["acp", "start"],
"env": {}
}
}
}
Use a full binary path if Zed cannot resolve ada from PATH.
VS Code and Other Editors
Editor extensions should spawn Ada as a subprocess:
{
"command": "ada",
"args": ["acp", "start"]
}
Use --workspace-id <id> when the extension needs to force session resolution
to a specific Lovelace workspace.
Custom Clients
Custom clients should implement the ACP v1 JSON-RPC lifecycle:
initializesession/neworsession/loadsession/promptsession/updatenotificationssession/cancel
Run ada acp status --format json to confirm the installed binary supports ACP.
Troubleshooting
ACP does not start
ada acp status
which ada
Configure the editor with the absolute path to Ada if which ada does not match
the expected installation.
Client receives non-JSON output
ACP reserves stdout for JSON-RPC frames. Ensure wrappers, shell profiles, and editor launch scripts do not print to stdout before starting Ada.