Buckets:
| 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 | |
Xet Storage Details
- Size:
- 3.77 kB
- Xet hash:
- d7f8d60a36a0a579251b2d2a9e94cedb2a4887a4b5b48ce4124f1c93f49b2380
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.