---
title: Support ACP
description: Utilisez OpenCode dans n’importe quel éditeur compatible ACP.
---

OpenCode prend en charge le [Agent Client Protocol](https://agentclientprotocol.com) (ACP), vous permettant de l'utiliser directement dans les éditeurs et IDE compatibles.

:::tip
Pour obtenir une liste des éditeurs et des outils prenant en charge ACP, consultez le [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now).
:::

ACP est un protocole ouvert qui standardise la communication entre les éditeurs de code et les agents de codage AI.

---

## Configuration

Pour utiliser OpenCode via ACP, configurez votre éditeur pour exécuter la commande `opencode acp`.

La commande démarre OpenCode en tant que sous-processus compatible ACP qui communique avec votre éditeur via JSON-RPC sur stdio.

Vous trouverez ci-dessous des exemples d'éditeurs populaires prenant en charge ACP.

---

### Zed

Ajoutez à votre configuration [Zed](https://zed.dev) (`~/.config/zed/settings.json`) :

```json title="~/.config/zed/settings.json"
{
  "agent_servers": {
    "OpenCode": {
      "command": "opencode",
      "args": ["acp"]
    }
  }
}
```

Pour l'ouvrir, utilisez l'action `agent: new thread` dans la **Palette de commandes**.

Vous pouvez également associer un raccourci clavier en modifiant votre `keymap.json` :

```json title="keymap.json"
[
  {
    "bindings": {
      "cmd-alt-o": [
        "agent::NewExternalAgentThread",
        {
          "agent": {
            "custom": {
              "name": "OpenCode",
              "command": {
                "command": "opencode",
                "args": ["acp"]
              }
            }
          }
        }
      ]
    }
  }
]
```

---

### IDE JetBrains

Ajoutez `acp.json` à votre [IDE JetBrains](https://www.jetbrains.com/) conformément à la [documentation](https://www.jetbrains.com/help/ai-assistant/acp.html) :

```json title="acp.json"
{
  "agent_servers": {
    "OpenCode": {
      "command": "/absolute/path/bin/opencode",
      "args": ["acp"]
    }
  }
}
```

Pour l'ouvrir, utilisez le nouvel agent « OpenCode » dans le sélecteur d'agent AI Chat.

---

### Avante.nvim

Ajoutez à votre configuration [Avante.nvim](https://github.com/yetone/avante.nvim) :

```lua
{
  acp_providers = {
    ["opencode"] = {
      command = "opencode",
      args = { "acp" }
    }
  }
}
```

Si vous devez transmettre des variables d'environnement :

```lua {6-8}
{
  acp_providers = {
    ["opencode"] = {
      command = "opencode",
      args = { "acp" },
      env = {
        OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
      }
    }
  }
}
```

---

### CodeCompanion.nvim

Pour utiliser OpenCode comme agent ACP dans [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), ajoutez ce qui suit à votre configuration Neovim :

```lua
require("codecompanion").setup({
  interactions = {
    chat = {
      adapter = {
        name = "opencode",
        model = "claude-sonnet-4",
      },
    },
  },
})
```

Cette configuration configure CodeCompanion pour utiliser OpenCode comme agent ACP pour le chat.

Si vous devez transmettre des variables d'environnement (comme `OPENCODE_API_KEY`), reportez-vous à [Configuring Adapters: Environment Variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) dans la documentation CodeCompanion.nvim pour plus de détails.

## Prise en charge

OpenCode fonctionne de la même manière via ACP que dans le terminal. Toutes les fonctionnalités sont prises en charge :

:::note
Certaines commandes slash intégrées telles que `/undo` et `/redo` ne sont actuellement pas prises en charge.
:::

- Outils intégrés (opérations sur les fichiers, commandes de terminal, etc.)
- Outils personnalisés et commandes slash
- Serveurs MCP configurés dans votre configuration OpenCode
- Règles spécifiques au projet à partir de `AGENTS.md`
- Formateurs et linters personnalisés
- Système d'agents et d'autorisations
