--- 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` - Пользовательские форматтеры и линтеры - Агенты и система разрешений