Maniac Docs
ACP

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/sdk

Quick 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

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.

On this page