LLM を選べる OSS コーディングエージェント opencode
SST チームが作った OSS コーディング AI の仕組み・使い方・Claude Code との違いを整理する
ターミナルで AI にコードを書かせるツールが増えている。 GitHub Copilot、Cursor、Claude Code、Aider……どれも「ターミナル or エディタから LLM を呼んでコードを編集する」という思想は同じだが、細部の設計がまったく異なる。
opencode は、SST(Serverless Stack)チームが 2025 年に公開したオープンソースの AI コーディングエージェントだ。
- ターミナルで動く TUI(テキストユーザーインターフェース)
- Claude・GPT・Gemini など主要 LLM を切り替えて使える
- MIT ライセンスで完全 OSS
- エージェントがファイルを読み書き・コマンドを実行する「エージェントループ」を持つ
この記事では opencode の概要・インストール・使い方・Claude Code との違いを整理する。
結論を先に
opencode は「Claude Code の OSS 版に近い位置付け」のツールだ。
特定プロバイダへの依存なし → Claude でも GPT-4o でも Gemini でも使える
ターミナル完結 → VS Code や Cursor 不要、SSH 先でもそのまま動く
ファイル操作が得意 → コード編集・新規作成・コマンド実行をエージェントが自律的に行う
OSS → ソースを読んで動作を理解できる・自分でフォークして改造できる
opencode が解決する問題
AI コーディングツールには「特定プロバイダへのロックイン」という問題がある。
- Cursor は OpenAI / Anthropic に依存した UI
- Claude Code は Anthropic の API キーが必須
- GitHub Copilot は GitHub のエコシステムに統合された形でしか使えない
プロバイダを自由に選びたい・切り替えたいというニーズに応えるのが opencode の立ち位置だ。
会社のセキュリティポリシー上 OpenAI は使えないが Anthropic は使える、あるいは逆のケース、コストを下げるために Gemini Flash を使いたいケースなど、現場で起きる「LLM 選択問題」を抽象化して解決する。
アーキテクチャの概要
opencode の動作は大きく 3 層に分かれる。
┌─────────────────────────────────────────┐
│ TUI レイヤー(Bubble Tea / Go) │ ← ユーザーが操作する画面
└────────────────┬────────────────────────┘
│
┌────────────────▼────────────────────────┐
│ エージェントループ │ ← LLM の呼び出しとツール実行を繰り返す
│ ・ファイル読み書き │
│ ・シェルコマンド実行 │
│ ・検索・grep │
└────────────────┬────────────────────────┘
│
┌────────────────▼────────────────────────┐
│ プロバイダ抽象層 │ ← Claude / GPT / Gemini etc.
└─────────────────────────────────────────┘
TUI レイヤー
Go の TUI フレームワーク Bubble Tea を使って実装されている。 ターミナル上でチャット画面・差分プレビュー・ファイルツリーが表示され、キーボードだけで操作できる。
エージェントループ
LLM からのレスポンスを受け取り、ツール呼び出し(read_file、write_file、bash など)があれば実行して結果を返す。これを繰り返す構造は Claude Code や Aider と同じ設計思想だ。
プロバイダ抽象層
各 LLM を統一インターフェースで呼び出す。設定ファイルにプロバイダ名と API キーを書くだけで切り替えられる。
// ~/.config/opencode/config.json
{
"provider": "anthropic",
"model": "claude-sonnet-4-5"
}
インストール
macOS / Linux(推奨)
curl -fsSL https://opencode.ai/install | bash
npm 経由
npm install -g opencode-ai
Go ソースからビルド
git clone https://github.com/sst/opencode
cd opencode
go build ./...
基本的な使い方
起動
# カレントディレクトリをプロジェクトとして開く
opencode
# 特定ディレクトリを指定して開く
opencode /path/to/project
起動すると TUI が立ち上がり、チャット画面が表示される。
基本操作
| キー | 動作 |
|---|---|
Enter |
メッセージを送信 |
Ctrl+C |
実行中のエージェントを中断 |
Ctrl+N |
新しいセッションを開始 |
Ctrl+L |
画面をクリア |
Tab |
ファイル補完 |
? |
ヘルプを表示 |
プロバイダとモデルの切り替え
チャット中にスラッシュコマンドで切り替えられる。
/model claude-opus-4-5
/model gpt-4o
/model gemini-2.0-flash
ファイル・ディレクトリの参照
@ を使ってファイルを会話に含められる。
@src/api/users.py のバグを修正して
@README.md を読んでこのプロジェクトの概要を教えて
Claude Code との違い
同じ「ターミナルで動く AI コーディングエージェント」として比較されることが多い。
| 観点 | opencode | Claude Code |
|---|---|---|
| プロバイダ | 複数対応(Claude・GPT・Gemini 等) | Anthropic のみ |
| ライセンス | MIT(OSS) | プロプライエタリ |
| 実装言語 | Go | TypeScript / Node.js |
| TUI フレームワーク | Bubble Tea(Go) | ink(React/Node.js) |
| MCP サポート | あり(実験的) | あり(本番品質) |
| カスタムツール追加 | フォークして改造 | hooks / MCP で拡張 |
| 料金 | 無料(API 料金は別途) | Pro プランで利用可 |
| 更新頻度 | コミュニティドリブン | Anthropic が管理 |
opencode を選ぶ理由
- 使う LLM を自分で決めたい
- OSS なのでコードを読んで動作を把握したい
- 社内ポリシーで特定プロバイダしか使えない
- Anthropic のサブスク契約が不要
Claude Code を選ぶ理由
- Anthropic の最新モデルを最速で使いたい
- MCP の安定した統合が必要
- Anthropic のサポートと更新を受けたい
実際の使用例
例1: 新機能の実装
ユーザー認証に JWT を追加してください。
現在の実装は @src/auth/ にあります。
opencode がファイルを読み込み、必要なパッケージのインストールから実装・テストの記述まで自律的に進める。
例2: バグ修正
@src/api/users.py の 42行目で KeyError が発生しています。
スタックトレースは以下です:
KeyError: 'email'
エージェントがファイルを読み込み、原因を特定して修正案を提示する。修正を適用するかは最終的にユーザーが承認する。
例3: コードレビュー
@src/ 以下の変更差分をレビューして、
セキュリティ上の問題があれば指摘してください
CLAUDE.md に相当する設定ファイル
Claude Code の CLAUDE.md(プロジェクト固有の指示ファイル)に相当するのが、opencode では AGENTS.md または opencode.md だ。
プロジェクトルートに置くと、エージェントが参照する。
<!-- opencode.md -->
## プロジェクト概要
FastAPI + PostgreSQL のバックエンド API。
## コーディング規約
- Python 3.11+ の型ヒントを必ず使う
- Ruff でフォーマット
- テストは pytest
## 注意事項
- DB マイグレーションは Alembic で管理している
- 本番環境の設定は .env.production(コミット禁止)
現状の制約と注意点
opencode は活発に開発が続いているが、まだ発展途上な部分もある。
安定性
- 大規模なファイル編集でコンテキストが溢れることがある
- Claude Code に比べてツール実行の信頼性がやや低い報告がある
MCP サポート
- 対応は進んでいるが、Claude Code ほど成熟していない
- 複雑な MCP ワークフローには Claude Code の方が向いている
エコシステム
- コミュニティ系ツールやプラグインはまだ少ない
- 日本語ドキュメントもほぼ存在しない
まとめ
opencode は「LLM に依存しない OSS のターミナル AI エージェント」として、特定プロバイダへのロックインを避けたいユーザーにとって有力な選択肢だ。
- Claude を使いつつも Anthropic のツールに縛られたくない場合
- コストに応じてモデルを柔軟に切り替えたい場合
- ソースコードを読んでカスタマイズしたい場合
は opencode が向いている。
一方、Anthropic のエコシステム(MCP・hooks・Pro プラン)を最大限活用したい場合は Claude Code の方が現状では完成度が高い。
どちらも「ターミナルでエージェントにコードを書かせる」という同じビジョンを持つツールだ。用途や制約に応じて使い分けるのが現実的な答えになる。