Agent Client Protocol (ACP)
AiderDesk supports the Agent Client Protocol (ACP), a standardized protocol for communication between code editors/IDEs and AI coding agents. This means you can use AiderDesk as an AI agent inside any ACP-compatible editor or client — such as Zed, JetBrains AI Assistant, VS Code, neovim, and many others.
ACP is similar to the Language Server Protocol (LSP), but for AI coding agents. Instead of each editor building a custom integration for every agent, ACP provides a single standard. Any ACP-compatible editor can use any ACP-compatible agent.
How It Works
AiderDesk's ACP server is a thin stdio bridge that connects an ACP client (your editor) to a running AiderDesk instance. When your editor launches the ACP agent, AiderDesk receives prompts over JSON-RPC, processes them through its existing task system (via the REST API), and streams back responses, tool calls, diffs, and reasoning in real time.
┌─────────┐ JSON-RPC (stdio) ┌──────────────┐ HTTP/SSE ┌─────────────────┐
│ Editor │ ◄──────────────────────► │ aiderdesk │ ◄───────────────► │ AiderDesk Server │
│ (ACP │ │ acp (CLI) │ │ (Electron / │
│ Client) │ │ │ │ Docker / npm) │
└─────────┘ └──────────────┘ └─────────────────┘
The aiderdesk acp command does not start a server — it connects to an already-running AiderDesk instance and bridges ACP protocol messages to its REST API.
Prerequisites
The ACP bridge connects to a running AiderDesk server. It does not start one. Make sure AiderDesk is running in one of the following ways:
1. Electron Desktop App
If you have the desktop app installed and running, the ACP bridge will connect to it on the default port (24337).
2. Docker
Run AiderDesk in headless mode via Docker. See the Docker guide for full setup instructions.
docker run -d \
--name aiderdesk \
-p 24337:24337 \
-v ~/aiderdesk-data:/app/data \
-v ~/.aider-desk:/root/.aider-desk \
-v ~/projects:/projects \
ghcr.io/hotovo/aider-desk:latest
3. npm CLI
Install and run AiderDesk as a global npm package. See the npm CLI guide for details.
npm install -g @aiderdesk/aiderdesk
aiderdesk start
Verifying AiderDesk is Running
Before configuring your editor, verify AiderDesk is reachable:
curl http://localhost:24337/api/health
# Expected: {"status":"ok"}
Installation
The ACP bridge is included in the aiderdesk CLI, which is part of the @aiderdesk/aiderdesk npm package.
npm install -g @aiderdesk/aiderdesk
You can verify the ACP command is available:
aiderdesk acp --help
Usage
aiderdesk acp [options]
Options
| Option | Description |
|---|---|
-p, --port <port> | AiderDesk server port (default: 24337, env: AIDER_DESK_PORT) |
--host <host> | AiderDesk server host (default: localhost) |
The command communicates over stdio using JSON-RPC with newline-delimited JSON (NDJSON), as defined by the ACP specification. You normally don't run this command directly — your editor launches it as a subprocess.
Port Configuration
The port can be configured in three ways (highest priority first):
- CLI flag:
aiderdesk acp --port 8080 - Environment variable:
AIDER_DESK_PORT=8080 aiderdesk acp - Default:
24337
Configuring ACP Clients
To use AiderDesk as an ACP agent, register it in your editor's ACP/agent server configuration. The configuration tells the editor what command to run to start the agent.
Zed
Add AiderDesk to your Zed agent_servers configuration (~/.config/zed/settings.json):
{
"agent_servers": {
"AiderDesk": {
"command": "npx",
"args": ["@aiderdesk/aiderdesk", "acp"]
}
}
}
If you installed AiderDesk globally, you can use the aiderdesk command directly:
{
"agent_servers": {
"AiderDesk": {
"command": "aiderdesk",
"args": ["acp"]
}
}
}
To connect to a non-default port, pass --port:
{
"agent_servers": {
"AiderDesk": {
"command": "aiderdesk",
"args": ["acp", "--port", "8080"]
}
}
}
JetBrains IDEs
JetBrains IDEs (IntelliJ IDEA, WebStorm, PyCharm, GoLand, etc.) support ACP via AI Assistant. Configure AiderDesk as a custom agent server in JetBrains settings under Settings → Tools → AI Assistant → Custom Agent Servers:
- Name: AiderDesk
- Command:
aiderdesk acp(ornpx @aiderdesk/aiderdesk acp)
Visual Studio Code
Install an ACP extension such as ACP Client or ACP Pro, then configure AiderDesk as an agent server:
{
"acp.servers": {
"AiderDesk": {
"command": "aiderdesk",
"args": ["acp"]
}
}
}
neovim
Using CodeCompanion:
require("codecompanion").setup({
adapters = {
aiderdesk = function()
return require("codecompanion.definitions.adapter")
:new({
name = "aiderdesk",
scheme = "acp",
cmd = "aiderdesk",
args = { "acp" },
env = {},
})
end,
},
})
Generic Configuration
For any ACP-compatible client, the agent server definition follows this pattern:
| Field | Value |
|---|---|
| Name | AiderDesk |
| Command | aiderdesk (or npx @aiderdesk/aiderdesk) |
| Args | ["acp"] |
| Working directory | Your project directory |
| Port override | Add --port <port> to args |
| Host override | Add --host <host> to args |
See the full list of ACP-compatible clients for more configuration options.
Session Configuration
When you start a new ACP session, AiderDesk exposes several configurable options that the client may present as dropdowns or selectors. You can set these before or during a session.
Chat Mode
Selects the chat mode for the session:
| Mode | Description |
|---|---|
| Agent | Agent mode with full tool access |
| Code | Code mode using Aider for edits |
| Ask | Ask questions without making changes |
| Architect | Design and plan without implementation |
| Context | Add context files to the conversation |
Custom modes defined per-project are also included if available.
Agent Profile
Selects the agent profile to use. This option is only visible when the selected chat mode is Agent (i.e., not one of the Aider modes: Code, Ask, Architect, Context). The list is fetched from your configured agent profiles, or defaults to the project's default profile.
Autonomy
Controls how much human oversight the agent has:
| Mode | Description |
|---|---|
| Manual | Requires approval for every tool call and plan |
| Guided | Auto-approves tool calls, waits for plan approval |
| Autonomous | Runs without interruption |
What You Get
When using AiderDesk through ACP, your editor receives rich, structured updates:
- Agent message streaming — Responses stream in real time as the agent works
- Agent reasoning — Thinking/reasoning steps are displayed as they occur
- Tool calls — File reads, edits, searches, bash commands, and more are shown with their inputs and outputs
- Diffs — File edits and writes are rendered as diffs that the editor can display natively
- Terminal output — Bash command results are surfaced as terminal content
- Usage and cost — Token usage and cost information is reported after each response
- Session info — Task names and metadata are synced with the editor
- Cancellation — You can cancel in-progress prompts; the editor will notify AiderDesk to interrupt the task
Troubleshooting
"AiderDesk server is not running" error
The ACP bridge connects to a running AiderDesk server. Make sure it's started:
- Desktop app: Launch the AiderDesk application
- Docker:
docker start aiderdesk(ordocker run ...— see Docker guide) - npm CLI: Run
aiderdesk start(see npm CLI guide)
Verify the server is healthy:
curl http://localhost:24337/api/health
Wrong port
If AiderDesk is running on a non-default port, pass --port to the ACP command:
{
"command": "aiderdesk",
"args": ["acp", "--port", "8080"]
}
Or set the AIDER_DESK_PORT environment variable in the agent server config:
{
"command": "aiderdesk",
"args": ["acp"],
"env": { "AIDER_DESK_PORT": "8080" }
}
Remote AiderDesk instance
If your AiderDesk server is running on a different host, use the --host flag:
{
"command": "aiderdesk",
"args": ["acp", "--host", "192.168.1.100"]
}
Sessions not persisting
ACP sessions map to AiderDesk tasks. Each new ACP session creates a new task. To resume a conversation, use your editor's session management features — AiderDesk will reuse the existing task if the session continues.
Learn More
- Agent Client Protocol — Official protocol documentation
- ACP Clients — Full list of compatible editors and tools
- Chat Modes — Learn about AiderDesk's chat modes
- Agent Profiles — Configure agent behavior and tool access
- REST API — The underlying API that the ACP bridge uses
- npm CLI — Running AiderDesk via npm
- Docker — Running AiderDesk in Docker