Agent Client Protocol (ACP)
Expose Maniac agents over ACP with serveAcpStdio, the maniac-agents-acp CLI, and TraceTranslator.
Agent Client Protocol (ACP)
@maniac-ai/agents/acp exposes any registered Maniac agent over the Agent Client Protocol so editors (Zed, Neovim, Gemini CLI) can drive Maniac agents through the same JSON-RPC subprocess transport they already speak.
Install the optional peer dependency:
npm install @agentclientprotocol/sdkQuick start
import { Maniac, OpenAICompatibleModel } from "@maniac-ai/agents";
import { serveAcpStdio } from "@maniac-ai/agents/acp";
const app = new Maniac({
model: new OpenAICompatibleModel({ slug: "gpt-4o-mini" })
});
app.agent({
id: "support",
instructions: "You are a helpful coding assistant."
});
await serveAcpStdio(app, "support");Editors spawn this process over stdio and exchange ACP session/* requests. Each session/prompt drives Maniac.chatStream; trace events flow through TraceTranslator into session/update notifications.
Topics
- serveAcpStdio —
AcpServer, sessions, permissions, and capability-gated tools - CLI and translator —
maniac-agents-acpbin andTraceTranslator
Plan primitive
Plan-aware agents (Agent.plans_enabled = true) auto-inject the LM-facing set_plan tool. Plan emissions surface as ACP session/update with sessionUpdate=plan — independent of whether the client connected via ACP or a direct runAgent call.
Python parity
ACP server + translator + plan + capability tools + CLI ship in both runtimes. Python additionally provides serve_acp_websocket and acp_agent_as_tool (wrap an external ACP agent as a Tool); the TypeScript port does not include an acpAgentAsTool twin yet.