> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Client Protocol

> Run third-party agents inside the Devin Desktop Agent Command Center via ACP.

<Note>
  ACP agents are available for Pro, Max, and Teams users. Enterprise admins should contact their account team about enabling third-party agents.
</Note>

Devin Desktop includes support for running third-party agents inside the [Agent Command Center](/desktop/agent-command-center). We use the [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) to do so.

ACP is an open protocol that standardizes communication between code editors and coding agents — similar to how the Language Server Protocol (LSP) standardized language server integration. Any agent that implements ACP can be plugged into Devin Desktop, and Devin Desktop can talk to any ACP-compatible agent.

<Note>
  When using an external ACP agent, all agent operations are delegated to the agent. Devin Desktop's privacy policy and legal terms do not apply, and billing is directly between you and the third-party agent provider.
</Note>

## Example agents

Any agent that speaks ACP can be run inside Devin Desktop. Some popular ACP-compatible agents you can plug in include:

* [Codex CLI](https://github.com/openai/codex) — OpenAI's coding agent
* [Claude Agent](https://www.anthropic.com/claude-code) — Anthropic's coding agent
* [OpenCode](https://opencode.ai) — open source coding agent
* [Junie](https://www.jetbrains.com/junie/) — JetBrains' coding agent
* [Gemini CLI](https://github.com/google-gemini/gemini-cli) — Google's coding agent

In addition to third-party agents like these, you can use ACP to integrate a [custom agent](/desktop/acp-custom) with Devin Desktop.

## Enabling custom agents

Once an agent is added to your [local](#local-registry-config) or [team](#team-registry-config) registry, it can be enabled from `Devin Settings`:

1. Open the Command Palette with `Cmd+Shift+P` (macOS) or `Ctrl+Shift+P` (Windows/Linux)
2. Open `Devin User Settings`
3. Click the "Agents" tab
4. Toggle on the ACP agents you want to use
5. Restart Devin Desktop

Once enabled, the agent appears in the agent selector in the bottom right corner of Devin Desktop when starting *new* conversations, alongside built-in agents like [Cascade](/desktop/cascade/cascade) and [Devin Local](/desktop/devin-local).

## Local registry config

Individual users can configure their own ACP agents by editing a local registry file:

* **Devin Desktop:** `~/.windsurf/acp/registry.json`
* **Devin Desktop Next:** `~/.windsurf-next/acp/registry.json`

You can also open the file directly from the Command Palette by running `Open Local ACP Registry Config`.

The file follows the [ACP registry spec](https://agentclientprotocol.com/get-started/registry).

### Sample config for Devin Local

If you would like to test out [Devin Local](/desktop/devin-local) on your machine without enabling it for your entire team, you can configure a local registry pointing to the Devin CLI.

This assumes the `devin` CLI is already installed and available on your `PATH`. Devin Desktop launches it with `devin acp`.

```json theme={null}
{
  "version": "1.0.0",
  "agents": [
    {
      "id": "devin-cli",
      "name": "Devin Local",
      "version": "1.0.0",
      "description": "Devin AI coding agent via Devin CLI",
      "authors": [
        "Cognition AI"
      ],
      "license": "proprietary",
      "distribution": {
        "binary": {
          "darwin-aarch64": {
            "archive": "",
            "cmd": "devin",
            "args": [
              "acp"
            ]
          },
          "darwin-x86_64": {
            "archive": "",
            "cmd": "devin",
            "args": [
              "acp"
            ]
          },
          "linux-aarch64": {
            "archive": "",
            "cmd": "devin",
            "args": [
              "acp"
            ]
          },
          "linux-x86_64": {
            "archive": "",
            "cmd": "devin",
            "args": [
              "acp"
            ]
          },
          "windows-aarch64": {
            "archive": "",
            "cmd": "devin",
            "args": [
              "acp"
            ]
          },
          "windows-x86_64": {
            "archive": "",
            "cmd": "devin",
            "args": [
              "acp"
            ]
          }
        }
      }
    }
  ],
  "extensions": []
}
```

## Team registry configuration

Team administrators can push out a custom ACP config to their team via the "ACP Registry Config" setting in [Devin Settings](https://windsurf.com/team/settings).

This lets you maintain a static registry of approved ACP agents that all members of your team can use, without each user having to configure them individually.

<Note>
  For security reasons, Devin Desktop does not currently download agent distributions directly from the registry. The agent binary is expected to already be installed on the user's machine — the registry config tells Devin Desktop how to launch it. The `distribution.binary.<platform>.archive` URLs in the sample below are part of the ACP registry schema for compatibility with the wider ecosystem, but Devin Desktop does not fetch them today.
</Note>

### Sample config for OpenCode

```json theme={null}
{
  "version": "1.0.0",
  "agents": [
    {
      "id": "opencode",
      "name": "OpenCode",
      "version": "1.15.7",
      "description": "The open source coding agent",
      "repository": "https://github.com/anomalyco/opencode",
      "website": "https://opencode.ai",
      "authors": [
        "Anomaly"
      ],
      "license": "MIT",
      "icon": "https://cdn.agentclientprotocol.com/registry/v1/latest/opencode.svg",
      "distribution": {
        "binary": {
          "darwin-aarch64": {
            "archive": "https://github.com/anomalyco/opencode/releases/download/v1.15.7/opencode-darwin-arm64.zip",
            "cmd": "./opencode",
            "args": [
              "acp"
            ]
          },
          "darwin-x86_64": {
            "archive": "https://github.com/anomalyco/opencode/releases/download/v1.15.7/opencode-darwin-x64.zip",
            "cmd": "./opencode",
            "args": [
              "acp"
            ]
          },
          "linux-aarch64": {
            "archive": "https://github.com/anomalyco/opencode/releases/download/v1.15.7/opencode-linux-arm64.tar.gz",
            "cmd": "./opencode",
            "args": [
              "acp"
            ]
          },
          "linux-x86_64": {
            "archive": "https://github.com/anomalyco/opencode/releases/download/v1.15.7/opencode-linux-x64.tar.gz",
            "cmd": "./opencode",
            "args": [
              "acp"
            ]
          },
          "windows-aarch64": {
            "archive": "https://github.com/anomalyco/opencode/releases/download/v1.15.7/opencode-windows-arm64.zip",
            "cmd": "./opencode.exe",
            "args": [
              "acp"
            ]
          },
          "windows-x86_64": {
            "archive": "https://github.com/anomalyco/opencode/releases/download/v1.15.7/opencode-windows-x64.zip",
            "cmd": "./opencode.exe",
            "args": [
              "acp"
            ]
          }
        }
      }
    }
  ],
  "extensions": []
}
```

## Troubleshooting

### My existing agent setup isn't working

Third-party agents read their own config files for most settings, but authentication is usually handled separately. Specifically, you typically need to:

* Authenticate via a `/login` slash command in the agent.
* Configure environment variables using the "..." button in the Agents tab of Devin User Settings.
* Set environment variables via the `devin.acp.agentEnv.<agentName>` setting in your `settings.json` file.
