156 lines
4.2 KiB
Plaintext
156 lines
4.2 KiB
Plaintext
---
|
|
title: ACPのサポート
|
|
description: ACP 互換エディターで OpenCode を使用します。
|
|
---
|
|
|
|
OpenCode は [Agent Client Protocol](https://agentclientprotocol.com) または (ACP) をサポートしているため、互換性のあるエディターや IDE で直接使用できます。
|
|
|
|
:::tip
|
|
ACP をサポートするエディターとツールのリストについては、[ACP progress report](https://zed.dev/blog/acp-progress-report#available-now).
|
|
:::
|
|
ACP は、コード エディターと AI コーディング エージェント間の通信を標準化するオープン プロトコルです。
|
|
|
|
---
|
|
|
|
## 設定する
|
|
|
|
ACP 経由で OpenCode を使用するには、`opencode acp` コマンドを実行するようにエディタを設定します。
|
|
|
|
このコマンドは、stdio 経由で JSON-RPC 経由でエディターと通信する ACP 互換のサブプロセスとして OpenCode を開始します。
|
|
|
|
以下は、ACP をサポートする一般的なエディタの例です。
|
|
|
|
---
|
|
|
|
### ゼッド
|
|
|
|
[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"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
```
|
|
|
|
---
|
|
|
|
### JetBrains IDE
|
|
|
|
[documentation](https://www.jetbrains.com/help/ai-assistant/acp.html):] に従って、[JetBrains IDE](https://www.jetbrains.com/) acp.json] に追加します。
|
|
|
|
```json title="acp.json"
|
|
{
|
|
"agent_servers": {
|
|
"OpenCode": {
|
|
"command": "/absolute/path/bin/opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
これを開くには、AI Chat エージェント セレクターで新しい「OpenCode」エージェントを使用します。
|
|
|
|
---
|
|
|
|
### アバンテ.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
|
|
|
|
[CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim) で OpenCode を ACP エージェントとして使用するには、以下を Neovim 構成に追加します。
|
|
|
|
```lua
|
|
require("codecompanion").setup({
|
|
interactions = {
|
|
chat = {
|
|
adapter = {
|
|
name = "opencode",
|
|
model = "claude-sonnet-4",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
この構成は、OpenCode をチャットの ACP エージェントとして使用するように CodeCompanion をセットアップします。
|
|
|
|
環境変数 (`OPENCODE_API_KEY` など) を渡す必要がある場合、詳細については、CodeCompanion.nvim ドキュメントの「アダプターの構成: 環境変数 ](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key)」を参照してください。
|
|
|
|
## サポート
|
|
|
|
OpenCode は、ACP 経由でもターミナル内で動作するのと同じように動作します。すべての機能がサポートされています。
|
|
|
|
:::note
|
|
`/undo` や `/redo` などの一部の組み込みスラッシュ コマンドは現在サポートされていません。
|
|
:::
|
|
|
|
- 組み込みツール (ファイル操作、ターミナルコマンドなど)
|
|
- カスタムツールとスラッシュコマンド
|
|
- OpenCode 構成で構成された MCP サーバー
|
|
- `AGENTS.md` のプロジェクト固有のルール
|
|
- カスタムフォーマッタとリンター
|
|
- エージェントと権限システム
|