OpenCodeとは?
オープンソースで開発されている、複数のLLMを選択可能なコーディングエージェントです。
以前使用した際はまだマイナーバージョンでしたが、いつの間にかメジャーバージョンがリリースされていたため、改めて触ってみることにしました。
主な特徴
- LLMを自由に選択可能: 用途や予算に合わせてモデルを切り替えられます。
- フォーマッタ利用可能: コード生成後の整形も自動で行えます。
- コマンド実行可能: エージェントがシェルコマンドを実行して環境を確認できます。
- リッチなTUI: 操作性が高く、視認性の良いインターフェースです。
設定ファイル
設定ファイルは ~/.config/opencode/opencode.json に配置します。
個人的に以下の点が良いなと感じました。
-
テーマ設定:
tokyonightなど、好みの配色テーマが設定できる。 -
権限の細かい制御: コマンドごとに
allow(許可),ask(確認),deny(拒否) を設定できるため、勝手に破壊的なコマンドを実行される心配がありません。 - モードごとの設定: 例えば「プランニングモード(Plan)」ならコードの書き込み(write)権限は不要、といった使い分けが可能です。
configの設定例
{
"$schema": "https://opencode.ai/config.json",
"theme": "tokyonight",
"tools": {
"write": true,
"bash": true,
"webfetch": true
},
"permission": {
"bash": {
"*": "deny",
"git status": "allow",
"git diff": "allow",
"git add": "ask",
"git commit": "ask",
"git log": "allow",
"ls": "allow",
"cat": "allow",
"pwd": "allow",
"rg": "allow",
"go build": "allow",
"go test": "allow",
"go mod tidy": "allow"
}
},
"mcp": {
"context7": {
"type": "local",
"command": [
"npx",
"-y",
"@upstash/context7-mcp"
],
"enabled": true,
"environment": {}
}
},
"agent": {
"plan": {
"tools": {
"write": false,
"bash": false
}
}
}
}
使ってみた感想
実際に Go言語で ToDo アプリを作成しました。
問題なくアプリは一発で作成できました。まあ、GPT-5.1を使用しているので当然といえば当然ですが、触っていて誤作動のようなものはなく正常に動作しました。
以下はプラン実行時のデモです。
コマンド実行の利便性
!ls . のように ! をつけることでコマンド実行が可能です。Gemini CLI のシェルモードも同様の機能です。TUI 上でファイル確認や差分確認がシームレスに行える 点が非常に便利だと感じました。
セッション管理
普段使用している Claude Codeの /resume 画面と比較すると、一覧性が高く見やすい印象です。
ただ、表示される情報は最小限なので、セッション履歴が増えてきた時に目的のものが見つかられるかは分かりません。
テキストでの絞り込み機能はあるのですが、日本語は非対応のようです。
ブランチ名あると嬉しいのですが。
最後に
とにかく TUI の完成度が高く、操作していて楽しい(好き) というのが一番の感想です。
触ってみてはいかがでしょうか。


