1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
---
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
[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」エージェントを使用します。
---
### 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
[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` のプロジェクト固有のルール
- カスタムフォーマッタとリンター
- エージェントと権限システム
|