Skip to main content

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.

bash
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

ItemValue
User-facing commandada acp start
Transportstdio
RuntimeRust Ada CLI / Lattice runtime
Remote clientsNot supported as a stable Lovelace ACP contract
Logsstderr or file logs, never protocol stdout

Zed

Add Ada as an ACP agent server:

json
{
  "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:

json
{
  "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:

  • initialize
  • session/new or session/load
  • session/prompt
  • session/update notifications
  • session/cancel

Run ada acp status --format json to confirm the installed binary supports ACP.

Troubleshooting

ACP does not start

bash
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.