OpenCodeには opencote acp というコマンドがあります。これは何のためにあるのか、どんなことができるのかを整理します。
ACP(Agent Client Protocol)は、エディタとAIエージェントの間の共通通信プロトコルです。Zed Industriesが中心となって策定し、OpenCodeを含む30以上のエージェントが対応しています。Zed、JetBrains、VS Code、Neovim、Emacsなど幅広いエディタで「好きなエージェント」を選んで使えるようになります。
ACPとは何か
ACPは Agent Client Protocol の略で、コードエディタ(クライアント)とAIコーディングエージェント(サーバー)の間の通信を標準化するオープンプロトコルです。
仕様はGitHubで公開されており(agentclientprotocol/agent-client-protocol)、2026年5月時点で3,200以上のスターがついています。
発想の源はLSP(Language Server Protocol)です。LSPが「どんなエディタでも同じ言語サーバーを使える」ようにしたように、ACPは「どんなエディタでも同じAIエージェントを使える」ようにするものです。
ACPは Zed Industries が中心となって策定しましたが、現在はJetBrainsやGoogle、Anthropic、OpenAIなども参加するコミュニティ主導のプロトコルになっています。
ACPの通信はJSON-RPC over stdioで行われます。エディタがエージェントをサブプロセスとして起動し、標準入出力でメッセージをやり取りします。将来的にはHTTPやWebSocketを使ったリモート接続にも対応予定です。
OpenCodeとACP
OpenCodeをACPエージェントとして起動するには、次のコマンドを使います。
opencode acp --cwd /path/to/project
このコマンドでOpenCodeはACP対応のサブプロセスとして起動し、エディタとJSON-RPCで通信します。
対応エディタでの設定例
Zed(~/.config/zed/settings.json):
{
"agent_servers": {
"OpenCode": {
"command": "opencode",
"args": ["acp"]
}
}
}
JetBrains IDE(acp.json):
{
"agent_servers": {
"OpenCode": {
"command": "/absolute/path/bin/opencode",
"args": ["acp"]
}
}
}
Neovim + CodeCompanion.nvim:
require("codecompanion").setup({
interactions = {
chat = {
adapter = {
name = "opencode",
model = "claude-sonnet-4",
},
},
},
})
ACP経由で使えるOpenCodeの機能
ACP経由でも、OpenCodeのほぼ全機能が利用可能です。
- ファイルの読み書き・編集
- ターミナルコマンドの実行
- MCPサーバー(外部ツール連携)
- カスタムツール・スラッシュコマンド
- プロジェクトの AGENTS.md ルールの反映
- カスタムフォーマッター・リンター
- エージェント・パーミッションシステム
現時点で /undo と /redo のスラッシュコマンドはACP経由では未対応です。
ACP対応エージェント一覧(抜粋)
OpenCode以外にも、多くのAIエージェントがACPに対応しています。2026年5月時点で30以上です。
他にも Aider(実装進行中)、Docker cagent、Kimi CLI(Moonshot AI)、Kiro CLI、Factory Droid などが対応しています。
全リストは公式サイトで確認できます: https://agentclientprotocol.com/overview/agents
ACP対応クライアント(エディタ・ツール)
エディタ側のACP対応も急速に広がっています。
主要エディタ
- Zed — ネイティブ対応(ACP発案元)設定ドキュメント
- JetBrains IDE — IntelliJ、WebStorm、PyCharmなど全製品で対応 ヘルプ
- VS Code — ACP Client拡張機能 で対応
- Neovim — 3つのプラグイン:
- Emacs — agent-shell.el
- Obsidian — Agent Clientプラグイン
- Unity — 複数のACPプラグインが存在
CLI・デスクトップツール
- Jockey — 複数のACPエージェントを束ねるマルチエージェントオーケストレーター github.com/recailai/jockey
- acpx CLI — ターミナル向けACPクライアント github.com/openclaw/acpx
- ACP UI — クロスプラットフォームGUI github.com/formulahendry/acp-ui
- Toad — ターミナル向けエージェントインターフェース batrachian.ai
チャット連携
ACPエージェントをDiscord、Slack、Telegramから呼び出すブリッジも登場しています。
- OpenACP — Telegram、Discord、Slack対応のセルフホストブリッジ
- Telegram ACP Bot — Telegram連携
- WeChat ACP — WeChat連携
フレームワーク連携
- LangChain / LangGraph — Deep Agents ACP で対応
- LlamaIndex — workflows-acp アダプター
- Koog(JetBrains)— 組み込み対応
モバイルでも Agmente(iOS)、Ferngeist(Android)、Happy(iOS/Android/Web)などのACPクライアントが登場しています。
ACPのメリット
ACPを使うことで得られる利点は3つあります。
1. エディタとエージェントの自由な組み合わせ
従来は「このエージェントはこのエディタでしか使えない」という制約がありました。ACPでは、好きなエディタで好きなエージェントを選べます。
例えば、ZedでOpenCodeを使う、JetBrainsでGemini CLIを使う、NeovimでClaude Agentを使う、といった組み合わせがすべて可能です。
2. エージェントの切り替えが容易
プロジェクトやタスクに応じてエージェントを切り替えられます。設定ファイルを書き換えるだけで、同じエディタのまま別のエージェントを呼び出せます。
3. エコシステムの拡大
ACPが共通プロトコルになったことで、新しいエージェントやクライアントが続々と登場しています。エディタ開発者は1つのプロトコルに対応するだけで、30以上のエージェントにアクセスできるようになります。
実際のユースケース
ケース1: Zed + OpenCode でターミナル不要のAI開発
ZedエディタにOpenCodeをACPで接続すると、エディタ内で直接AIに質問したり、コード生成を依頼したりできます。OpenCodeのTUIを別途起動する必要はありません。
ケース2: JetBrains + 複数エージェントの使い分け
IntelliJ IDEAにOpenCodeとGemini CLIの両方をACPで登録しておき、通常のコーディングはOpenCode、大規模リファクタリングはGemini CLIという使い分けが可能です。
ケース3: Jockeyでマルチエージェント並列実行
Jockeyを使うと、Claude Code、Gemini CLI、Codex CLIを同時に起動して、同じプロジェクトに対して並列にタスクを割り当てられます。コードレビューをClaude Codeに、テスト生成をGemini CLIに、といった分担が可能です。
ケース4: Discord/SlackからACPエージェントを呼び出す
OpenACPなどのブリッジを使えば、チームのSlackチャンネルからOpenCodeに「このPRレビューして」と依頼できます。エディタを開いていなくてもAIアシスタントを利用できます。
ACP(Agent Client Protocol)は、エディタとAIエージェントの垣根を取り払う共通プロトコルです。OpenCodeも opencode acp コマンドでACPエージェントとして動作し、Zed、JetBrains、Neovim、VS Codeなど幅広いエディタから利用できます。30以上のエージェントと多数のクライアントが対応しており、エコシステムは急速に拡大中です。
参考リンク
- ACP公式サイト: https://agentclientprotocol.com
- ACP仕様リポジトリ: https://github.com/agentclientprotocol/agent-client-protocol
- ACP進捗レポート(Zed Blog): https://zed.dev/blog/acp-progress-report
- OpenCode ACPドキュメント: https://opencode.ai/docs/acp