157 lines
5.1 KiB
Plaintext
157 lines
5.1 KiB
Plaintext
---
|
|
title: Поддержка ACP
|
|
description: Используйте opencode в любом ACP-совместимом редакторе.
|
|
---
|
|
|
|
opencode поддерживает [Agent Client Protocol](https://agentclientprotocol.com) или (ACP), что позволяет использовать его непосредственно в совместимых редакторах и IDE.
|
|
|
|
:::tip
|
|
Список редакторов и инструментов, поддерживающих ACP, можно найти в [отчете о ходе работы ACP](https://zed.dev/blog/acp-progress-report#available-now).
|
|
:::
|
|
|
|
ACP — это открытый протокол, который стандартизирует связь между редакторами кода и агентами кодирования ИИ.
|
|
|
|
---
|
|
|
|
## Настроить
|
|
|
|
Чтобы использовать opencode через ACP, настройте свой редактор для запуска команды `opencode acp`.
|
|
|
|
Команда запускает opencode как ACP-совместимый подпроцесс, который взаимодействует с вашим редактором через JSON-RPC через stdio.
|
|
|
|
Ниже приведены примеры популярных редакторов, поддерживающих ACP.
|
|
|
|
---
|
|
|
|
### Zed
|
|
|
|
Добавьте в конфигурацию [Zed](https://zed.dev) (`~/.config/zed/settings.json`):
|
|
|
|
```json title="~/.config/zed/settings.json"
|
|
{
|
|
"agent_servers": {
|
|
"OpenCode": {
|
|
"command": "opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Чтобы открыть его, используйте действие `agent: new thread` в **Палитре команд**.
|
|
|
|
Вы также можете привязать сочетание клавиш, отредактировав свой `keymap.json`:
|
|
|
|
```json title="keymap.json"
|
|
[
|
|
{
|
|
"bindings": {
|
|
"cmd-alt-o": [
|
|
"agent::NewExternalAgentThread",
|
|
{
|
|
"agent": {
|
|
"custom": {
|
|
"name": "OpenCode",
|
|
"command": {
|
|
"command": "opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
```
|
|
|
|
---
|
|
|
|
### IDE JetBrains
|
|
|
|
Добавьте в свою [JetBrains IDE](https://www.jetbrains.com/) acp.json в соответствии с [документацией](https://www.jetbrains.com/help/ai-assistant/acp.html):
|
|
|
|
```json title="acp.json"
|
|
{
|
|
"agent_servers": {
|
|
"OpenCode": {
|
|
"command": "/absolute/path/bin/opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Чтобы открыть его, используйте новый агент opencode в селекторе агентов AI Chat.
|
|
|
|
---
|
|
|
|
### Avante.nvim
|
|
|
|
Добавьте в свою конфигурацию [Avante.nvim](https://github.com/yetone/avante.nvim):
|
|
|
|
```lua
|
|
{
|
|
acp_providers = {
|
|
["opencode"] = {
|
|
command = "opencode",
|
|
args = { "acp" }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Если вам нужно передать переменные среды:
|
|
|
|
```lua {6-8}
|
|
{
|
|
acp_providers = {
|
|
["opencode"] = {
|
|
command = "opencode",
|
|
args = { "acp" },
|
|
env = {
|
|
OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### CodeCompanion.nvim
|
|
|
|
Чтобы использовать opencode в качестве агента ACP в [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), добавьте в конфигурацию Neovim следующее:
|
|
|
|
```lua
|
|
require("codecompanion").setup({
|
|
interactions = {
|
|
chat = {
|
|
adapter = {
|
|
name = "opencode",
|
|
model = "claude-sonnet-4",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
Эта конфигурация настраивает CodeCompanion для использования opencode в качестве агента ACP для чата.
|
|
|
|
Если вам нужно передать переменные среды (например, `OPENCODE_API_KEY`), обратитесь к разделу [Настройка адаптеров: переменные среды](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) в документации CodeCompanion.nvim для получения полной информации.
|
|
|
|
## Поддержка
|
|
|
|
opencode через ACP работает так же, как и в терминале. Поддерживаются все функции:
|
|
|
|
:::note
|
|
Некоторые встроенные команды слэша, такие как `/undo` и `/redo`, в настоящее время не поддерживаются.
|
|
:::
|
|
|
|
- Встроенные инструменты (файловые операции, команды терминала и т. д.)
|
|
- Пользовательские инструменты и команды слэша
|
|
- Серверы MCP, настроенные в вашей конфигурации opencode
|
|
- Правила для конкретного проекта из `AGENTS.md`
|
|
- Пользовательские форматтеры и линтеры
|
|
- Агенты и система разрешений
|