Skip to main content
Agent Client Protocol (ACP) standardizes communication between coding agents and code editors or IDEs. With the ACP protocol, you can make use of your custom deep agents with any ACP-compatible client, allowing your code editor to provide project context and receive rich updates.
ACP is designed for agent-editor integrations. If you want your agent to call tools hosted by external servers, see Model Context Protocol (MCP).

Quickstart

Install the ACP integration package:
Then expose a deep agent over ACP. This starts an ACP server in stdio mode (it reads requests from stdin and writes responses to stdout). In practice, you usually run this as a command launched by an ACP client (for example, your editor), which then communicates with the server over stdio.
You can also use the CLI without writing any code:

Deep Agents ACP on npm

The deepagents-acp package provides both a CLI and a programmatic API for exposing deep agents over ACP.

Clients

Deep agents work anywhere you can run an ACP agent server. Some notable ACP clients include:

Zed

Register your deep agent with Zed by adding it to your Zed settings (~/.config/zed/settings.json on Linux, ~/Library/Application Support/Zed/settings.json on macOS): Simple setup (no code required):
With CLI options:
Custom server script: For more control, create a TypeScript server script:
Then point Zed at it:
Open Zed’s Agents panel and start a Deep Agents thread.

ACP Registry

Deep Agents is available in the ACP Agent Registry for one-click installation in Zed and JetBrains IDEs. When an ACP client supports the registry, users can discover and install Deep Agents without any manual configuration.

CLI reference

The CLI is the fastest way to start an ACP server. It requires no code—just run npx deepagents-acp and connect your editor.

Environment variables

Programmatic API

startServer

Convenience function to create and start a server in one call:

DeepAgentsServer

For full control, use the DeepAgentsServer class directly:

Server options

Agent configuration

Customization

Multiple agents

You can expose multiple agents from a single server. The ACP client selects which agent to use when creating a session:
Some ACP clients (like Zed) don’t currently expose a UI for selecting between agents. In that case, consider running separate server instances with a single agent each.

Slash commands

The server registers built-in slash commands with the IDE: /plan, /agent, /ask, /clear, and /status. You can also define custom commands per agent:

Human-in-the-loop

Use interruptOn to require user approval in the IDE before the agent runs sensitive tools:
When the agent calls a protected tool, the IDE prompts the user to allow or reject the operation, with options to remember the decision for the session.

Custom tools

Custom backend

Skills and memory

See the upstream ACP docs for protocol details and editor support: