コンテンツにスキップ

ACPのサポート

ACP 互換エディターで OpenCode を使用します。

OpenCode は Agent Client Protocol または (ACP) をサポートしているため、互換性のあるエディターや IDE で直接使用できます。

ACP は、コード エディターと AI コーディング エージェント間の通信を標準化するオープン プロトコルです。


設定する

ACP 経由で OpenCode を使用するには、opencode acp コマンドを実行するようにエディタを設定します。

このコマンドは、stdio 経由で JSON-RPC 経由でエディターと通信する ACP 互換のサブプロセスとして OpenCode を開始します。

以下は、ACP をサポートする一般的なエディタの例です。


Zed

Zed 構成 (~/.config/zed/settings.json) に追加します。

~/.config/zed/settings.json
{
"agent_servers": {
"OpenCode": {
"command": "opencode",
"args": ["acp"]
}
}
}

これを開くには、コマンド パレットagent: new thread アクションを使用します。

keymap.json を編集してキーボード ショートカットをバインドすることもできます。

keymap.json
[
{
"bindings": {
"cmd-alt-o": [
"agent::NewExternalAgentThread",
{
"agent": {
"custom": {
"name": "OpenCode",
"command": {
"command": "opencode",
"args": ["acp"]
}
}
}
}
]
}
}
]

JetBrains IDE

documentation に従って、JetBrains IDE acp.json に追加します:

acp.json
{
"agent_servers": {
"OpenCode": {
"command": "/absolute/path/bin/opencode",
"args": ["acp"]
}
}
}

これを開くには、AI Chat エージェント セレクターで新しい「OpenCode」エージェントを使用します。


Avante.nvim

Avante.nvim 設定に追加:

{
acp_providers = {
["opencode"] = {
command = "opencode",
args = { "acp" }
}
}
}

環境変数を渡す必要がある場合:

{
acp_providers = {
["opencode"] = {
command = "opencode",
args = { "acp" },
env = {
OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
}
}
}
}

CodeCompanion.nvim

CodeCompanion.nvim で OpenCode を ACP エージェントとして使用するには、以下を Neovim 構成に追加します。

require("codecompanion").setup({
interactions = {
chat = {
adapter = {
name = "opencode",
model = "claude-sonnet-4",
},
},
},
})

この構成は、OpenCode をチャットの ACP エージェントとして使用するように CodeCompanion をセットアップします。

環境変数 (OPENCODE_API_KEY など) を渡す必要がある場合、詳細については、CodeCompanion.nvim ドキュメントの「アダプターの構成: 環境変数」を参照してください。

サポート

OpenCode は、ACP 経由でもterminal 内で動作するのと同じように動作します。すべての機能がサポートされています。

  • 組み込みツール (ファイル操作、terminalコマンドなど)
  • カスタムツールとスラッシュコマンド
  • OpenCode 構成で構成された MCP サーバー
  • AGENTS.md のプロジェクト固有のルール
  • カスタムフォーマッタとリンター
  • エージェントと権限システム