Overview
Anvil is a Rust Agent Client Protocol server. It is the portable agent backend behind an editor, bot, TUI, or automation rather than a user interface of its own.
The Boundary
Section titled “The Boundary”An ACP client launches Anvil as a subprocess and communicates over stdio using JSON-RPC.
ACP client stdio / JSON-RPC Anvil---------- ---------------- -----editor --------------------------------> agent loopissue bot --------------------------------> model routingcustom TUI --------------------------------> permissionsautomation --------------------------------> tools + sessionsThe client owns conversation presentation, controls, and permission UI. Anvil owns model routing, tool execution, permission enforcement, session persistence, context management, sandbox selection, and MCP subprocesses.
ACP session options are client-owned. Model, behavior, reasoning effort, service tier, and permission selections apply to the live session and must be resubmitted by a client when appropriate. Anvil persists durable history and session metadata, not a universal UI preference profile. Stream timeouts are separate process defaults with an in-memory session override.
Supported Surfaces
Section titled “Supported Surfaces”- Zed and JetBrains have repository-backed configuration helpers.
- Any compatible client can use the custom ACP client contract.
- The Rust client examples demonstrate issue triage, code review, and issue drafting.
Codex/ChatGPT, Bedrock, Ollama, ds4, DeepSeek, Kimi, OpenAI-compatible endpoints, and OpenRouter are model providers, not ACP clients.
Start Here
Section titled “Start Here”Use Install Anvil for release and source options, then complete the ten-minute evaluation to verify one client, one provider, Bifrost-backed code intelligence, permission behavior, and session context.
Before connecting private source code or third-party extensions, review Data and Trust Boundaries and Permissions and Sandboxing.