--- title: ACP description: Używanie OpenCode z protokołem Agent Client Protocol (ACP). --- import { Tabs, TabItem } from "@astrojs/starlight/components" OpenCode obsługuje [Agent Client Protocol](https://agentclientprotocol.com) (ACP), który umożliwia korzystanie z OpenCode bezpośrednio w edytorach i środowiskach IDE. :::tip Listę edytorów i narzędzi obsługujących ACP znajdziesz w [raporcie postępu ACP](https://zed.dev/blog/acp-progress-report#available-now). ::: ACP to otwarty standard, który ujednolica komunikację między edytorami kodu a agentami kodującymi AI. --- ## Konfiguracja Aby używać OpenCode przez ACP, skonfiguruj swój edytor tak, aby uruchamiał polecenie `opencode acp`. Uruchamia to OpenCode jako podproces zgodny z ACP, który komunikuje się z edytorem za pomocą JSON-RPC przez stdio. Poniżej znajdują się przykłady dla edytorów obsługujących ACP. --- ### Zed Dodaj do konfiguracji [Zed](https://zed.dev) (`~/.config/zed/settings.json`): ```json title="~/.config/zed/settings.json" { "agent_servers": { "OpenCode": { "command": "opencode", "args": ["acp"] } } } ``` Aby użyć, wybierz `agent: new thread` w **Palecie poleceń** (Command Palette). Możesz także przypisać skrót klawiszowy, edytując `keymap.json`: ```json title="keymap.json" [ { "bindings": { "cmd-alt-o": [ "agent::NewExternalAgentThread", { "agent": { "custom": { "name": "OpenCode", "command": { "command": "opencode", "args": ["acp"] } } } } ] } } ] ``` --- ### JetBrains IDE Dodaj do swojego [JetBrains IDE](https://www.jetbrains.com/) plik `acp.json` zgodnie z [dokumentacją](https://www.jetbrains.com/help/ai-assistant/acp.html): ```json title="acp.json" { "agent_servers": { "OpenCode": { "command": "/absolute/path/bin/opencode", "args": ["acp"] } } } ``` Następnie wybierz „OpenCode” w selektorze agentów AI Chat. --- ### Avante.nvim Dodaj do konfiguracji [Avante.nvim](https://github.com/yetone/avante.nvim): ```lua { acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" } } } } ``` Jeśli potrzebujesz przekazać klucz API: ```lua {6-8} { acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" }, env = { OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY") } } } } ``` --- ### CodeCompanion.nvim Aby używać OpenCode jako agenta ACP w [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), dodaj następującą konfigurację do Neovim: ```lua require("codecompanion").setup({ interactions = { chat = { adapter = { name = "opencode", model = "claude-sonnet-4", }, }, }, }) ``` Ta konfiguracja sprawia, że CodeCompanion używa OpenCode jako agenta ACP do czatu. Jeśli wymagany jest `OPENCODE_API_KEY`, zapoznaj się z sekcją [Konfigurowanie adapterów: Zmienne środowiskowe](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) w dokumentacji CodeCompanion.nvim, aby uzyskać szczegółowe informacje. ## Wsparcie OpenCode działa przez ACP tak samo, jak w terminalu. Obsługiwane są wszystkie główne funkcje: :::note Niektóre polecenia z ukośnikiem, takie jak `/undo` i `/redo`, nie są obecnie obsługiwane przez ACP. ::: - Narzędzia wbudowane (operacje na plikach, terminal itp.) - Niestandardowe narzędzia i polecenia z ukośnikiem - Serwery MCP zdefiniowane w konfiguracji OpenCode - Zasady projektu z `AGENTS.md` - Niestandardowe formatery i lintery - Agenci systemowi i uprawnienia