pub struct AcpConfig {Show 17 fields
pub enabled: bool,
pub agent_name: String,
pub agent_version: String,
pub max_sessions: usize,
pub session_idle_timeout_secs: u64,
pub broadcast_capacity: usize,
pub permission_file: Option<PathBuf>,
pub available_models: Vec<String>,
pub transport: AcpTransport,
pub http_bind: String,
pub auth_token: Option<String>,
pub discovery_enabled: bool,
pub lsp: AcpLspConfig,
pub additional_directories: Vec<AdditionalDir>,
pub auth_methods: Vec<AcpAuthMethod>,
pub message_ids_enabled: bool,
pub subagents: AcpSubagentsConfig,
}Expand description
ACP (Agent Communication Protocol) server configuration, nested under [acp] in TOML.
When enabled = true, Zeph exposes an ACP endpoint that IDE integrations (e.g. Zed, VS Code)
can connect to for conversational coding assistance. Supports stdio and HTTP transports.
§Example (TOML)
[acp]
enabled = true
transport = "stdio"
agent_name = "zeph"
max_sessions = 4Fields§
§enabled: boolEnable the ACP server. Default: false.
agent_name: StringAgent name advertised in the ACP initialize response. Default: "zeph".
agent_version: StringAgent version advertised in the ACP initialize response. Default: crate version.
max_sessions: usizeMaximum number of concurrent ACP sessions. Default: 4.
session_idle_timeout_secs: u64Seconds of inactivity before an idle session is closed. Default: 1800.
broadcast_capacity: usizeBroadcast channel capacity for streaming events. Default: 256.
permission_file: Option<PathBuf>Path to the ACP permission TOML file controlling per-session tool access.
available_models: Vec<String>List of {provider}:{model} identifiers advertised to the IDE for model switching.
Example: ["claude:claude-sonnet-4-5", "ollama:llama3"]
transport: AcpTransportTransport mode: “stdio” (default), “http”, or “both”.
http_bind: StringBind address for the HTTP transport.
auth_token: Option<String>Bearer token for HTTP and WebSocket transport authentication.
When set, all /acp and /acp/ws requests must include Authorization: Bearer <token>.
Omit for local unauthenticated access. TLS termination is assumed to be handled by a
reverse proxy.
discovery_enabled: boolWhether to serve the /.well-known/acp.json agent discovery manifest. Only effective when transport is “http” or “both”. Default: true.
lsp: AcpLspConfigLSP extension configuration ([acp.lsp]).
additional_directories: Vec<AdditionalDir>Allowlist of workspace directories that ACP clients may reference in session requests.
Paths are canonicalized at config load; traversal (..) and reserved locations
(/proc, /sys, ~/.ssh, ~/.gnupg, ~/.aws) are rejected with an error.
An empty list means clients may not request any additional directories beyond the
session cwd.
This is a policy allowlist, not a protocol advertisement: the agent never returns
additional_directories in any response; instead it validates each session request’s
additional_directories field against this list and rejects with invalid_params
on any violation.
auth_methods: Vec<AcpAuthMethod>Auth methods advertised in the ACP initialize response.
PR 4 MVP accepts only "agent". Config load fails on any other value so drift
from the schema is detected at startup rather than silently ignored.
message_ids_enabled: boolEcho PromptRequest.message_id onto PromptResponse.user_message_id and every
streamed chunk, enabling IDE-side correlation.
Requires the unstable-message-id feature. Default: true.
subagents: AcpSubagentsConfigSub-agent delegation configuration ([acp.subagents]).