| --- |
| 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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| Zainstaluj OpenCode z [rejestru ACP Zed](https://zed.dev/docs/ai/external-agents#registry), uruchamiając `zed: acp registry` w palecie poleceń. |
|
|
| Aby zamiast tego użyć niestandardowego pliku wykonywalnego OpenCode, dodaj go do konfiguracji [Zed](https://zed.dev) (`~/.config/zed/settings.json`): |
|
|
| ```json title="~/.config/zed/settings.json" |
| { |
| "agent_servers": { |
| "OpenCode": { |
| "type": "custom", |
| "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"] |
| } |
| } |
| } |
| } |
| ] |
| } |
| } |
| ] |
| ``` |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| 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") |
| } |
| } |
| } |
| } |
| ``` |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| |
|
|
| 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 |
|
|