Gemini CLIの登場
無料という意味と魅力
GoogleからGemini CLIが発表され、界隈は結構なにぎわいを見せました。私もClaude codeを使うために、AnthropicのMAXプランを契約していますが、もし代替となるのであれば、無料というのはとても魅力的であります。一方で「ただより高いものはない」ということわざもありますで、まずは使ってみてというところで試してみました。
Dockerコンテナ(devcontainer)に同居
簡単にClaude codeとGemini CLIを切り替えながら使いたいのですが、環境も汚したくないということで、先日作ったClaude code用のDockerコンテナ内に、Gemini CLIもインストールしました。devcontainer.jsonのpostCreateCommandで使う、シェルファイルに1行
npm install -g @google/gemini-cli
と入れればいいだけですけどね。そうすると
こんな感じで、切り替えながら両方を使えるようになります。
プログラミング比べ
同じ仕様書を元に、機能を実装してみる。
両方のプログラミング能力を見るために、簡単なWebアプリを作らせてみました。Gemini 2.5 Proに要件定義書と、外部仕様書を作成させ、それを元に実装をしてみました。Claude codeにとっては 完全アウェイ な条件ですね。
実装するのはこんなところです。
1.Chromeのブックマークファイル(Bookmarksという拡張子のないjsonファイル)を読み込み、ツリー表示をさせる
- 各ブックマーク要素の左にチェックボックスをつける
- 確認するボタンをクリックすると、ブックマークにあるWebを巡回し、サイトが生きていたらニコちゃんマークを、死んでいたらドクロマークを、不明だったりタイムアウトしたら?をつける
を基本にして追加機能をあとから付ける。そんな感じです。
Claude Codeの場合
ほぼ要件定義通りに実装してくれました。ただ、動かしてみると、巡回時の待ち時間が短すぎてほとんどが?になってしまったので、待ち時間を少し長く取ってもらって、だいたい満足行く結果となりました。それでもここまではMAX100ドルプランのOpus4の範囲で収まりました。
Gemini CLIの場合
実装する速度はClaude codeより断然早く、すぐにテストに入れました。しかし、動作が非常に遅い。Claude code版と比べ物にならないくらいです。1時間経っても巡回が終わらず。逆に、待ち時間を短くするように依頼しました。そして・・・
Gemini 2.5 proが使えなくなる。
Geminiから「レスポンスが悪すぎるので、Gemini 2.5 flashに切り替える」というメッセージが出て、Gemini 2.5Flashに切り替わりました。図は、起動直後2.5proが使える状態です。
これは使用量が多すぎたのではなく、みんなが使うのでアクセス過多になったからなのかもしれません。15分くらい放置したら戻りました。
とたんにグダりだすGemini 2.5 flash
1分間に60回、1日1000回という無料分には全然及んでいない中で、2.5 proが使えなくなってしまったということは、いつ戻るかもわからないとも言えるので、このまま続けるしかありません。Claude codeもOpusのリミットに達したら、そのままSonnetに移って続けることもあるので、同じようにやってみようと思いました。だがしかし、期待に反する挙動を始めました。特に、 コードの構文を誤りまくる ようになったのには驚きです。コード修正後、
npm run dev
npm start
とやりますが、ここでエラーが出るようになりました。理由を調べると、}が足りないなどという信じられないミスを度々やらかしてくれます。幸い、2.5 proが使えるようになり、すぐに解消しましたが、このまま2.5 flashではどうなっていたことかと思うと不安になります。
追加仕様
Claude codeの場合
ここで、追加仕様を投入します。今まで、読み込むファイルはBookmarksファイルですが、あまり個人のプライベートなフォルダのファイルは触りたくありません。Chromeには、ブックマークのエクスポートという機能があります。ここでエクスポートされたhtmlファイルを読み込んで同じ機能を実現できないかということで、指示を出しました。その結果・・・
正確にパースできず、かなり少ないデータしか取り出せませんでした。多重の入れ子になると、全然うまく処理ができないようです。元のBookmarksファイルを読ませてもだめでした。
Gemini CLIの場合
では、Gemini CLIではどうでしょう?Chromeがエクスポートすることができるなら、Google謹製のAIならさぞ簡単だろうと思いきや・・・ もっとだめだった 。不正なファイルですとか、ファイルを読み込めませんでしたという表示を出して、ブックマークされたデータを1つも表示できませんでした。自社のフォーマットなのにね。
README.md
最後に、Githubに上げるREADME.mdを書いてもらいました。ここにも特徴というか、大きな差がでます。
Claude codeの場合
長ければいいというわけではないですが、これでもかというくらい丁寧に書いてくれます。更にこのプログラムが素晴らしいことをPRしてくださいという内容をプロンプトに混ぜると、プログラムの凄さというより自画自賛に近いことを書き始めるのはなんとも面白かったです。
Gemini CLIの場合
長ければいいというわけではないといっても、ちょっと少ない(足りない)気もする。もう少し細かい指示を与えないとだめなのかもしれない。
まとめ
・2.5 flashで自走プログラミングは難しい
・Gemini CLIはClaude codeよりも詳しく精密な指示が必要なのかもしれない。
・逆にそれができるなら、結構いい線いくのではないだろうか?
というところでしょうか。