「OpenCode」& 「OpenCode Zen」を試す
試してみたいなと思いつつ試せてなかった。
が、Kimi 2.5が期間限定・無料で試せるそうなので、試してみることにする。
ちなみに、年契約しているGLMコーディングプランでも使える。
GitHubレポジトリ
日本語のREADMEもある、ほぼタイムリーに更新されているっぽくは見える。
が、一応英語のREADMEから抜粋。翻訳はPLaMo翻訳。
referred from https://github.com/anomalyco/opencode/オープンソースのAIコーディングアシスタント
referred from https://github.com/anomalyco/opencode/
エージェント機能
OpenCodeには2種類の組み込みエージェントが用意されており、
Tabキーで切り替え可能です。
- build - デフォルトのフルアクセスエージェント(開発作業向け)
- plan - 読み取り専用エージェント(分析やコード探索向け)
- デフォルトではファイル編集を許可しない
- bashコマンド実行前に許可を求める
- 馴染みのないコードベースの探索や、変更計画の立案に最適
また、複雑な検索や複数ステップを要するタスク用に、generalサブエージェントも搭載しています。
こちらは内部的に使用されており、メッセージ内で@generalと指定することで呼び出せます。エージェント機能の詳細についてはこちらをご覧ください。
ドキュメント
OpenCodeの設定方法についてさらに詳しく知りたい場合は、公式ドキュメントをご覧ください。
FAQ
Claude Codeとはどのような違いがありますか?
機能面ではClaude Codeと非常によく似ています。主な違いは以下の通りです:
- 100%オープンソースである
- 特定のプロバイダーに依存しない設計。現在はOpenCode Zenで提供しているモデルの使用を推奨していますが、OpenCodeはClaude、OpenAI、Googleのモデル、さらにはローカルモデルとも連携可能です。モデルが進化するにつれて各プロバイダー間の性能差は縮小し、価格も低下していくため、プロバイダー非依存の設計が重要です。
- 標準でLSP(Language Server Protocol)をサポート
- TUI(テキストユーザーインターフェース)に重点を置いている。OpenCodeはneovimユーザーとterminal.shopの開発者によって構築されており、ターミナル環境で実現可能な機能の限界に挑戦していきます。
- クライアント/サーバーアーキテクチャを採用。これにより、例えばOpenCodeをローカル環境で実行しながら、モバイルアプリからリモート操作することが可能になります。つまり、TUIフロントエンドは単なるクライアントの一形態に過ぎないということです。
ライセンスはMIT
公式ドキュメントはこちら。
Introに従って進める。
インストール
事前に必要なもの
- ターミナル。以下のようなものがリストアップされている。
- WezTerm
- Alacritty
- Ghostty
- Kitty
- 使用したいLLMプロバイダーのAPIキー
インストールはいろいろな方法に対応している。
- インストールスクリプト(curlで実行)
- npm / bun / pnpm / yarn
- scoop / chocolatey(Windows)
- Homebrew(Homebrew公式とOpenCode公式のTapがある、OpenCode公式のほうが更新頻度高い)
- paru(Arch Linux)
- mise
- nix
またベータだがデスクトップアプリもある
- macOS(Applie Silicon / Intel)
- Windows
- Linux
今回はHomebrewでOpenCode公式Tapからインストールする。
brew install anomalyco/tap/opencode
opencode --version
1.1.44
設定
最初にLLMプロバイダーを設定する。大まかに分けて2つの選択肢がある
- OpenCode Zenを使う
- ユーザが契約しているプロバイダーを使う
OpenCode Zenを使う
「OpenCode Zen」は、OpenCode が運営している従量課金ベースのプロバイダーサービスで、OpenCodeがコーディングエージェントとして動作することを確認した厳選されたモデルを提供しているらしい。
ドキュメントを見ると、OpenAI / Anthropic / Google / MiniMax / GLM / Kimi / Qwen などのモデルがリストアップされている。また、モデルによっては期間限定無料などもあるようだが、無料期間中は収集されたデータをトレーニングに使用する、など、料金含めていろいろ違いがある様子。使用する前に確認しておいたほうが良さそう。
ユーザが契約しているプロバイダーを使う
こちらはユーザー側でここに契約しているプロバイダーのAPIキーもしくはサブスクリプションを使う方法。OpenAI / Anthropic / Googleなどの主要ベンダーに加えて、Azure / Amazon Bedrock / OpenRouter / GitHub Copiliot などもある様子。
そういえば、少し前にAnthropicのサブスクを使う方法はいろいろ揉めていたと思うが、公式にサポートされていない方法という記載が追加されているものの今でも選択肢としては残っている様子。
サブスクリプションを使いたい場合は、おそらく公式にサポートされていると思われる OpenAI / GitHub Copilot / GLMを使うのが良いだろう。
今回はOpenCode Zenでやる。OpenCode Zenにアクセスしてアカウント作成しておく。
デフォルトでAPIキーが作成されるのでそれを使えば良さそう。今回は無料のKimi 2.5で試そうと思っているのだけど、課金は必要なのかな?まあとりあえず進めてみてダメならあとでやる。
OpenCodeを起動する。
opencode
/connectでプロバイダー設定を行う。
OpenCode Zenを選択
OpenCode ZenのAPIキーを入力
モデルを選択する画面になる。いろいろある。
今回は 期間限定で無料になっている Kimi 2.5 を選択。ただし無料版はデータは学習に使用されるようなので注意。
これで設定は完了。
一旦終了。適当なプロジェクトのディレクトリに移動して、再度OpenCodeを起動する。今回は以前作成したToDoリストのサンプルのディレクトリを使う。
AGENTS.mdを初期化。
/init
作成された。
あとはClaude CodeやCodex等と同じように使えば良い。
@
@でファイル名をあいまい検索できる。
!
! でシェルモードになり、コマンドを実行できる。
プランモード/ビルドモードの切り替え
タブでモードを切り替えることができる。
プランで計画を詰めてビルドで実装という流れ。
/undo
実行した作業を取り消して、前回の指示に戻る。
/share
現在の会話を共有することができる。実行すると共有リンクが発行されるみたい。あと、自動共有するかどうかのモード設定とか、共有の停止とか、もできるみたい。
エンタープライズだと公開範囲の設定とかもあるっぽい。
詳細は以下。
まとめ
触りだけなので評価するほど使ってはいないのだけど、思ったより普通に使えるなという感。CLIなのでClaude CodeやCodexと見た感じはそんなに変わらないのだけども、個人的にはなんとなくこちらのほうが好みかなぁ、なんかわかりやすく感じてしまった。
まああとは使い込んでみて、というところになるのだけど、とりあえず Kimi 2.5 の無料期間中に気にしなくて良いプロジェクトや調査などで使ってみるつもり。
Kimi 2.5のレスポンスも悪くない感があって(たまに混んでるのかエラーになることもあるが)、これはこれでもうちょっと色々調べてみたいかな。
せっかくなのでデスクトップ版(ベータ)も試してみる。
公式のダウンロードサイトもしくはGitHubレポジトリのリリースからダウンロードできる。
あとはHomebrewからもインストールできるみたい。今回はHomebrewで。
brew install --cask opencode-desktop
こんな感じで使える。
IDEって感じではないけど、必要十分かな。複数プロジェクトをここで管理もできそう。
公式ドキュメントを見ると、IDE向けの拡張、ブラウザアクセス、GitHub/GitLabとのインテグレーションなどもあるみたい。
たまたま動かしてたらさらっと確認無しでファイル削除した。権限とかはどう管理されているのかな?
権限については以下
サンドボックス化みたいなことはまだ実装されてなさそう?
よしなに設定してくれるものがあるみたい
ちょっと気になったのでOpenCode Zenの利用規約やプライバシーポリシーを確認した。
- 商業利用は可能な様子
- 入力の所有権はユーザ、出力の所有権はOpenCodeからユーザに譲渡される、つまり入出力の所有権は共にユーザにある
- 明示的な商業利用に対する許可も禁止も明記はされていないが、組織や団体の代表として同意できる人が使うことを許可する、というようなことが書いてある。
- これらを踏まえると、商業利用は可能と考えられる。
- データの学習について
- サービス提供・法令遵守・安全確保・規約違反チェックのために、データを使うことはある
- 無料アカウントの場合は、サービスの開発・改善に、データを使うことがある
学習については以下にも記載がある。
プライバシー
当社が提供するすべてのモデルは米国内にホストされています。当社のプロバイダーはゼロ保持ポリシーを採用しており、モデルのトレーニング目的でお客様のデータを使用することはありません。ただし、以下の例外が適用されます:
Big Pickle: 無料試用期間中は、収集したデータがモデルの性能向上に利用される場合があります。
GLM 4.7 Free: 無料試用期間中は、収集したデータがモデルの性能向上に利用される場合があります。
Kimi K2.5 Free: 無料試用期間中は、収集したデータがモデルの性能向上に利用される場合があります。
MiniMax M2.1 Free: 無料試用期間中は、収集したデータがモデルの性能向上に利用される場合があります。
OpenAI API: リクエストデータはOpenAIのデータポリシーに従い、30日間保持されます。
Anthropic API: リクエストデータはAnthropicのデータポリシーに従い、30日間保持されます。
GLM 4.7 や Kimi K2.5 など、最近話題のモデルについては、プロバイダー側でも定額プランを提供しているが、それらの規約なども見てみた感じだと、商用利用・データの学習有無についてはちょっと不安がある内容だった。
それに比較すると、OpenCodeのほうが安心感がある内容にはなっているかな。
ただし、OpenCodeの場合は基本的に従量課金なので、一概にそれらの定額プランと比較はできないと思うし、OpenCodeもどうやらOpenCode Blackという定額プランを準備しているようで、そのプランにおいても今の内容が維持されるか?はわからない。現状このプランの内容も全くわからないし。