ACP (Agent Client Protocol)
Run Caudra inside your editor. caudra acp starts an ACP server over stdio, so any ACP-capable editor (like Zed) can drive Caudra as its coding agent.
caudra acpZed setup
Section titled “Zed setup”Add Caudra as a custom agent in Zed's settings.json:
"agent_servers": { "Caudra": { "default_config_options": { "model": "deepseek/deepseek-v4-flash" }, "type": "custom", "command": "caudra", "args": ["acp"], "env": {} }}The model value is a provider/model-id spec, same format as caudra --model.
What works
Section titled “What works”- Sessions persist. Loading a session replays the full conversation in the editor, so you can resume where you left off.
- Model switching. Pick a model from the editor's dropdown, mid-session. All configured providers show up. Providers that list their models over the wire (OpenRouter and friends) are discovered in the background, so the dropdown keeps filling up for a moment after the session starts, one provider at a time.
- Modes. Switch between build (full access) and plan (plan-file writes only) from the editor.
- Permissions. Tool permission prompts appear in the editor. "Allow exact call for conversation" stores only the reviewed input and resources. Broad tool authority is not exposed through ACP.
- Questions. The
questiontool becomes a native form in the editor (ACP elicitation). If the client does not support elicitation, the tool is dropped and the model asks in plain text. - Live tool calls. Tool progress streams as it happens, including sub-agents and batched calls.
- Images and context. Prompts can include images and editor-attached files.
Authentication, providers, and permissions come from your normal Caudra config. Set up providers first and ACP sessions just work.
Project MCP startup trust must already be approved through /mcp in the TUI. ACP returns an actionable session error instead of silently omitting a parked server.
ACP supports synchronous subagents and shell commands, but not background work or workflows. The auto execution policies resolve to synchronous execution here. Strict async withholds the affected tool and rejects stale calls rather than changing its execution policy. Choose sync or auto, or use the TUI or stream-JSON SDK for session-owned work that continues after a parent answer.
caudra acpcaudra acp -m anthropic/claude-sonnet-4-6caudra acp --yolocaudra --no-jit acpcaudra acp only takes -m / --model and --yolo as subcommand flags. Other flags go before the subcommand, as in caudra --no-jit acp. caudra acp lists the ones that also work after it. --no-jit has an effect only when experimental.lua_plugins is on.
Plan mode in ACP uses the same state-directory plan files as the TUI (…/projects/<project-id>/plans/<slug>.md) rather than the SDK's ./plan.md. A session keeps one plan across mode switches, so returning to plan revises the same document.