loader image

Gemini CLI から Claude Code に戻した件について

はじめに

Claude Code maxプランを使っていたがコスト削減のためにGemini CLIに乗り換えた。
しかし結局Claude Code maxプランに戻すことになった。
この記事では実際に発生した問題と、なぜClaude Codeが優れた選択肢なのかを詳しく解説する。

前提条件

両ツールとも同じ内容のCLAUDE.mdとGEMINI.mdを使用してメモリ管理を行っている。つまりコンテキストの差はなく純粋な処理能力の違いを比較している。

Gemini CLIで発生した問題

無限ループ

個人開発中に、Gemini CLIが以下のような無限ループに陥った

✦ I will remove the duplicate listenToAuthChanges() method from
  user_provider_firebase.dart. It seems I have two identical
  listenToAuthChanges() methods in the file. I will remove the second one.
 ╭────────────────────────────────────────────────────────────────╮
 │ ✔  Edit Model did not provide valid parameters for edit tool   │
 │                                                                │
 │    Error: Failed to edit, could not find the string to         │
 │    replace.                                                    │
 ╰────────────────────────────────────────────────────────────────╯

このエラーが何度も何度も繰り返され、開発作業が完全に停止してしまった。

問題の本質

問題の根本原因は以下の通りだった

  1. 重複コードの検出: dartファイル内にlistenToAuthChanges()メソッドが完全に同じ内容で2回存在
  2. ツールの限界: Replaceツールが「ファイル内に2つあるのに1つしか期待していない」と判断
  3. 学習能力の欠如: 同じ失敗を繰り返し、解決策を見つけられない

解決の試み

問題を指摘し、以下の解決策を提案したが

この問題を解決する最も確実な方法は、replace ツールに頼らず、ファイルの内容を直接読み込み、Pythonの文字列操作機能を使って重複しているコードブロックを削除し、その結果をファイルに書き戻すことです。

しかし、再度同じループに陥った

並列処理での手間の差

Gemini CLI の問題点

上記の無限ループに限らず複数のターミナルでGemini CLIを並列実行すると、以下の問題が発生する

# Terminal 1: 作業A
✦ Processing task A...
[手動介入が必要な状況が発生]
# Terminal 2: 作業B
✦ Processing task B...
[同様に手動介入が必要]
# Terminal 3: 作業C
✦ Processing task C...
[さらに手動介入が必要]

結果: 各ターミナルで個別に手動修正が必要になり、並列処理のメリットが失われる

Claude Codeの優位性

1. 複雑な処理への対応力

Claude Codeは以下の点でGemini CLIより優れている

  • コンテキスト理解: 複雑なコードの構造を正確に把握
  • 学習能力: 同じ失敗を繰り返さない
  • 気が利く対応: 開発者が気づかない潜在的な問題も予防

2. 自律的な問題解決能力

Claude Codeでは、このような問題が発生した場合以下を行なってくれる

  1. 複数の解決手段を提案
  2. ファイル全体の書き換え
  3. 段階的な修正アプローチ
  4. 適切なツールの選択

3. ビルド・テスト時間の監視と自動対応

Claude Codeの実用的な機能の一つとしてビルドやテストの時間を監視し、異常に時間がかかっている場合に自動的にアクションを提案してくれることである

# 実際のXcodeビルドでの例
$ xcodebuild -scheme MyApp -destination 'platform=iOS Simulator'
# 通常30秒で完了するビルドが2分経過...
Claude Code: "Xcodeビルドに時間がかかっています。プロジェクトをクリーンして再度試してみましょう。"
✅ Product → Clean Build Folder を実行
✅ Derived Data を削除
✅ 再ビルドを開始
✅ 正常な速度でビルド完了(35秒)
# さらに
Claude Code: "今後の予防策として、ビルド前の自動クリーンスクリプトを設定しますか?"

Gemini CLIの場合: ビルドやテストが異常に遅くても何も提案せず、開発者が気づくまで待機し続ける
Claude Code: 異常を検知し、具体的な解決策を提案・実行まで支援

4. Git連携の優位性

Claude CodeはGitとの連携において圧倒的な優位性を持つ

  • PR作成の自動化: コミット内容から適切なPRタイトルと説明を自動生成
  • 履歴検索の精度: 過去のコミット履歴から関連する変更を素早く特定
  • ブランチ戦略の提案: 機能に応じた適切なブランチ名とマージ戦略を提案
  • コンフリクト解決: マージコンフリクトの解決策を具体的に提示

まとめ

項目Gemini CLIClaude Code
複雑な処理❌ ループに陥りやすい✅ 適切に処理
エラー処理❌ 同じエラーを繰り返す✅ 代替手段を提案
開発効率❌ 作業停止のリスク✅ スムーズな開発
並列処理❌ 手間がかかる✅ 独立した処理
細かい配慮❌ 気が利かない✅ かゆいところまで手が届く
git連携❌ 基本的なgit操作のみ✅ PR作成・履歴検索・コンフリクト解決

Gemini CLIの利点

ここまでClaude Codeの利点にばかりフォーカスしましたが、GEMINI CLIも素晴らしいツールです。
個人的に思うClaude Codeより優れている点を以下に記載します。

1. Windowsでもシームレスに使える

Claude Codeと違い、WSLを介さずにネイティブで動作します。

2. コスト優位性

  • 無料枠が大きい: 個人利用なら十分な無料枠

3. Google サービス連携

  • Google サービス統合: Gmail、Drive、Calendar等との連携
  • 検索機能: Googleの検索技術を活用した情報取得

4. マルチモーダル対応

  • 画像解析: 画面キャプチャやデザインの解析が得意
  • 音声入力: 音声でのコマンド入力に対応

結論

Gemini CLIを選ぶべき場面

  • 単発の簡単なタスク: ファイル変換、簡単な検索など
  • 予算重視の個人開発: 無料枠内で収まる小規模プロジェクト
  • マルチモーダル作業: 画像解析や音声入力が必要な場合
  • Google連携重視: Googleサービスとの統合が前提の作業

Claude Codeを選ぶべき場面

  • 複雑な開発プロジェクト: 継続的な開発、リファクタリング
  • 並列処理が必要: 複数のタスクを同時進行する場合
  • 品質重視: プロダクション環境での開発
  • 自律性が重要: 指示後に放置できる開発体験を求める場合

最終的な判断

GEMINI CLIが登場してそのコスト効率からClaude Codeを解約しましたが

GEMINI CLIを使って結局手作業で修正して「claude code ならこんなことにならなかった」

と感じる機会が多かったため、十分課金する価値があるツールだと再認識しました。
複数のプロジェクトを同時に進行させる現代の開発環境では、並列処理能力状況把握精度は重要なファクターだと思います。Claude Codeはこの両方を高いレベルで提供しています。

ただし、Gemini CLIも適切な用途で使用すれば非常に有効なツールであり、コスト効率マルチモーダル対応という独自の価値を提供しています。移り変わりの激しい生成AI界隈の中で、個人個人が最適なツールを選ぶべきだと痛感しました。

ただ一つ言えるのは、Claude CodeやGEMINI CLIなどIDEとCLIを統合して開発するスタイルはどんどん発展していくと思うので、Claude Codeよりも精度の高いツールの登場に期待したいと思いました。

コメント

タイトルとURLをコピーしました