Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

OpenCodeを愛用し始めている

CodexやClaude Codeなどはもちろん仕事で使っていますが、プライベートでコーディングする時間はなかなか限られていて、あれだけの枠があっても毎月使い切れるとは限らない日々が続いていました。プライベートでも使っていたもののかなり課金がもったいない気がしていたので、最近は課金を止めていました。でもやっぱり、いざプライベートでもコーディングしたくなったときにコーディングエージェントがない生活には戻れませんね。

他の選択肢として、OpenCodeは安いけれど品質は十分そうだと思ったので紹介がてら記事を書きます。OpusやSonnetなど以外のモデルに触れる良い機会でした。

OpenCodeを起動している。なんと、catppuccinのテーマがある!

Neovim上で、sidekick.nvimを用いて起動してみた

OpenCode

OpenCodeは、Anomalyが開発するオープンソースのAIコーディングエージェントです。

最近「The Pragmatic Programmer」というYouTubeチャンネル[*1]に作者の方が出演していたので、動画を見ると人となりや考え方がわかっておもしろいと思います。

www.youtube.com

動画の要点が文章化されたページは下記です。

newsletter.pragmaticengineer.com

無料プラン、GoとZen

まずOpenCodeには無料プランがあります。無料プランは利用できるエージェントがかなり限られる他、1日200リクエストの制限があります。もっとも私のように平日ほとんどコーディングエージェントを使わない人からすると、1日200リクエスト行くかどうかもそもそも怪しいので、まずは無料から試してみるのも悪くないでしょう。

さらにGoとZenがあります。Goはタスクを自律的に計画・実行するエージェントモードで、必要に応じてファイルの探索や編集、コマンドの実行を繰り返しながら、ユーザーが期待するゴールまで一連の作業を進めます。単なるコード生成ではなく、「実装を完了させる」ことを目指したワークフローを提供してくれるのが特徴です。

一方のZenは、OpenCodeチームが検証・最適化したモデルを利用できるAI Gatewayです。単一のAPIキーでClaudeやGemini、OpenAI、Qwenなど複数のモデルを利用できますが、コーディング用途に適したモデル・プロバイダーの組み合わせがあらかじめ検証されているのが特徴です。OpenCodeからは通常のLLMプロバイダーと同じように利用できるため、用途に応じてモデルを切り替えながら開発を進められます。最近だとOpenRouterやSakana AIのFuguをイメージすると分かりやすいでしょう。

価格

Goなら月10ドル(初月5ドル)で利用できます。Claude Code Proが月20ドルなので、価格だけを見ると半額です。Goは定額プランですが、完全な使い放題ではなく、モデルごとに5時間あたりのリクエスト上限が設定されています。

Zenはプリペイド方式の従量課金です。20ドル単位でクレジットを購入し、利用した分だけ残高が減っていきます。Goとは異なり月額料金はなく、使った分だけ支払うイメージです。なお、私はまだZen自体は試せていません。

使ってみて

総じて満足しています。

どう使っているかの話ですが、主にはOSS開発で利用しています。たとえば最近、私はKotlin向けHTTPサーバーライブラリをひそひそと作っています。このライブラリを作る際、他の言語のライブラリの実装を参考によいものをKotlin向けにカスタマイズして輸入しているのですが、その調査と輸入作業をまるっと任せてやっています。コードはすべて確認していますが、手で書いたコードはほとんどありません。

github.com

(春頃作り始めて、ちょうど椿が咲いていたので「Camellia」をKotlin風味にして「Kamellia」という名前にしました)

CLI: かなり使いやすいしわかりやすい

OpenCodeでの作業中の一コマ

個人的にはClaude CodeよりわかりやすいUIです。サイドバーも上手に使っていると思います。何より描画が安定しているので、勝手にテキストの位置やカーソルの位置がずれたり、チカチカしたりはしません。

コンテキスト: .claude側のスキル等々はいい感じに気を利かせて読んでくれる

Claude Codeを普段使いしていた場合は、用意しておいたスキルやサブエージェント、ルールなどはどうやらそのまま何も追加で設定せずとも気を利かせて読み込んでくれるようです。AskUserQuestionも動いてくれることは確認できていて、ある程度いい感じに動いてくれます。

ただし、Claude Code向けの本当に細かい制御は対応してはくれません。たとえばisolation: worktreeはサブエージェントが気を利かせて動いてくれることは今のところないので、worktreeを自動で切り出して欲しい場合はOpenCode用に別途サブエージェントの記述を追加するのがよいと思います。

モデル: 中国製モデルが中心的

利用可能なモデルはGoだとこのページに示されていますが、見るとわかるようにClaude等以外に中国製モデルも多く利用できます。個人的にはこれが結構おもしろくて、US以外のモデルの進歩を見られるよい機会になっています。

精度: モデルによる

これは完全にモデルによります。中程度の複雑さを持つタスクをお願いしている程度では気になりませんでした。もう少し複雑度の高いタスク(たとえばコードベースが数百万行になるなど)を任せた場合にどうなるかは今後試してみようかとは思っています。

使っているモデルは主に下記です。

  • Kimi K2.7 Code: 中量級といったところでしょうか。非常に処理が速く、実装時にとても助かるモデルです。ClaudeでいうとSonnetを実装担当として使うような感覚に近いでしょうか。一方で、長期の計画タスクではやや粗が目立つ印象があるため、私はソースコードリーディングや実装を中心に利用しています。
  • GLM 5.2/Qwen 3.7 Max: 重量級といったところでしょうか。ベンチマークはさまざまで一概には比較できませんが、OpenCodeでは1M超えのコンテキストを扱えるため、大規模リポジトリを前提とした計画や設計タスクはこちらに任せています。Qwen 3.7 Maxはベンチマークによって評価は分かれるものの、Claude Opusに迫る性能という評価も多く、実際に使っていても複雑な推論や長文コンテキストの扱いはかなり優秀だと感じています。

他の方の利用事例を見ていると、DeepSeek V4 Proあたりも人気なようです。ただ、ちょっとおっちょこちょいなところが目立つらしいですが。

時々Opusが恋しくならないかと言われると恋しくなるのは事実です。ドキュメントの生成は圧倒的にOpusの方が包括的で優れた考察を残してくれることが多いとは思います。それ以外の用途なら特段問題はないように思っています。プライベートでの利用なのでそこまで気にしていません。最悪OSSのdocは自分で書くからです。

どれくらい違うかですが、下記のgistを見てもらうとわかりやすいです。Opus 4.8とGLM 5.2それぞれに、先ほど紹介したKamelliaにOpenTelemetryのインテグレーションを実装するにはどうすればよいか、現状のコードベースを調査させた結果です。Opusはやはり包括的な文章を書いてくるなという印象があります。内容にほとんど差はなく、両者ともに似たような実装プラン(GLM側はさらにplanして実装プランを出させたらですが)を出してきたので、Kamellia程度のコードベースであればそんなに理解力に差はないことがわかりました。

Opus 4.8とGLM 5.2の調査ファイル比較 · GitHub

同時に、日頃のタスクにOpus以上の強力なモデルは、実はそこまで必要なかったのではないか?と気付かされることも多くなりました。「Opusならここまでやってくれるだろうなあ」と感じるのは本当に一部で、他の大半は中国製のモデルでも結果がほとんど変わらないなと思います。

うーんと思うポイント

どこにホストしているのかなどを明言していない

中国製モデルを利用する場合、結局モデルをどこにホストしているのかが論点になります。また、モデルの規約にあるデータ保持ポリシーを回避できているのかもまた論点になります。たとえばUS国内にのみホストしており、かつデータ保持ポリシーをOpenCodeが契約時に回避する条項を発行しているのであれば問題なく利用できます。しかし、中国にプロキシされるであるとか、モデルの規約の持つデータ保持ポリシー権限が優先される場合は少々問題あるケースが出てきます。[*2]

しかも少々厄介なことに、OpenCodeチームはこうした問題にはっきりとは答えてくれていません。サイトを読んでも結局明言されていないように見えますし、また下記のGitHubでの応答を見ても、ユーザーからのそうした質問に直接は回答していません。回答をぼかしているように見えます。穿った見方をすれば、意図して曖昧にしているのではと思えてきます。この点をどう捉えるか次第で利用するかどうかは決まるでしょう。私はとくに気にしないことにしましたが。

github.com

中国製モデルは会社によってはデータガバナンスの観点から禁止されていることがあります。中国製のモデルが保持するデータは、基本的に中国政府が要請すれば政府に渡ると考えた方が良いです。私も勤務先では業務利用禁止なので、念の為プライベートでしか使用しないようにしています。

使っている最中に突然中国語に切り替わる

油断すると突然中国語に切り替わってしまうモデルもあります。GLM 5.2でよく見ますかね。「中国語は読めないから英語に戻して」とよく言っています。

使っていたら中国語に切り替わってしまった

まとめ & クーポンをどうぞ!

Opus 4.8の性能が落ち始めていて、Anthropic社にプライベートで100〜200ドル払うのがもったいないという声をよく目にします。OpenCodeを試してみるのはいかがでしょうか?もちろん最終的には一昔前のOpusの性能やFable 5が恋しくはなるのでしょうが、一方で目の前のタスクを軽くこなす程度であれば、実はOpusは不要だったなんてことに気づくかも…しれません。中国製モデルの動作はなかなかヤンチャなこともあり、また政治的な文脈から好き嫌いもあるでしょうし、万人には薦めづらい選択肢ですが、乗り換え先を探しているようでしたら候補の一つにはできると思います。

このリンクをクリックしてOpenCodeを使い始めると、みなさんに5ドル、私に5ドル入ります。使ってみたいな!と思ったらぜひこちらからお試しください🙇🏻‍♀️

opencode.ai

ちなみに私は業務でOpus 4.8をフルで使っていても、そこまでの性能の劣化を感じていません。どこに差があるのかよくわかっていませんが、もしかすると、コツコツこれまで取り組んでいたコーディングエージェントのオーケストレーションの仕組みで解消できるかもしれません。この話題については、近々公開予定の次の記事で紹介しようと思っています。

*1:いろんなソフトウェアエンジニアをゲストに迎えて深掘りして聞いてくれるチャンネル。過去にはMitchell Hashimotoなども出演しており、個人的に最新のテックの動向を追うのに超おすすめのチャンネルです。

*2:「わが国つまり西側陣営からは」という言い方にしたいところですが。特定の国や地域が悪いのではなく、政治的な対立が悪いと考えているため。