157 lines
3.9 KiB
Plaintext
157 lines
3.9 KiB
Plaintext
---
|
||
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
|