GeminiCLIを使って既存のプログラムを修正する

初めに

自分のパソコンの中にあるファイルやプログラムを修正したり要約することができる画期的なプログラムです

GeminiCLIのWindowsインストール手順

1. Node.jsのインストール

GeminiCLIはNode.jsベースだから、まずはNode.jsをインストール

2. GeminiCLIのインストール

Node.jsが入ったら、コマンドプロンプトやPowerShellで以下を実行:

npm install -g @schroneko/gemini-cli

GeminiCLIの基本的な使い方

🔹 @でファイルやディレクトリをAIに渡す

gemini @README.mdの内容を要約して

README.mdの内容をAIに読み込ませて、文脈として活用できる!

🔹 !でシェルコマンドを実行

gemini !ls

lsコマンドを実行して、その結果をAIと共有できる!

🔹 .geminiファイルでプロジェクトごとのカスタム指示

たとえばReactプロジェクトなら、プロジェクトルートに.geminiファイルを作ってこんなふうに書ける:

このプロジェクトはReactを使用しています。
コードの提案はReactのベストプラクティスに従ってください。

GeminiCLIはこの内容を毎回のチャットで自動的に読み込んでくれる

さらに便利な使い方

  • /chat list:会話の一覧表示
  • /chat save <name>:会話を保存して、あとで再開できる。
  • /chat resume <name>:保存した会話を再開!

非対話モード(コマンドラインモード)の使い方

geminiは非対話モードでも超便利で、スクリプトやCLI操作に組み込んで使えるのが魅力

🔹 --prompt オプションで直接質問

gemini --prompt "1から10までの合計は?"

→ その場でAIが答えてくれる!スクリプトからも使いやすい!

🔹 パイプで標準入力から渡す

echo "富士山はどこですか?" | gemini

→ 標準入力をそのままAIに渡せるから、他のコマンドと組み合わせてもOK!

コマンドラインオプション一覧(主要なもの)

オプション説明
--prompt "<質問>"非対話モードで即座に回答を得る
--model <モデル名>使用するAIモデルを指定(例:gemini-pro
--lang <言語コード>出力言語を指定(例:jaen
--input <ファイル>入力ファイルを指定して内容をAIに渡す
--output <ファイル>出力をファイルに保存
`–format <jsontext>`出力形式を指定(デフォルトはtext)
--debugデバッグ情報を表示(内部処理の確認に便利)
--versionバージョン情報を表示
--helpヘルプを表示

スラッシュコマンド一覧(対話モードや.geminiでも使える)

/chatチャットモードを開始(対話形式)
/chat save <名前>現在の会話を保存
/chat resume <名前>保存した会話を再開
/chat list保存済みのチャット一覧を表示
/shellシェルモードに切り替え(コマンド実行が可能)
/exitチャットやシェルモードを終了
/clear会話履歴をクリア
/config設定ファイルの確認・編集
/helpコマンド一覧と使い方を表示

使い分けのイメージ

  • 非対話モード(--promptやパイプ)
    → スクリプトや一発質問に最適!CI/CDや自動化にも◎
  • 対話モード(/chat
    → 複雑な相談やコードレビュー、アイデア出しにぴったり!
  • シェルモード(/shell
    → 実行結果を見ながらAIとやりとりしたいときに便利!

  • 自動化には --prompt をスクリプトから呼ぶと便利。
  • プロジェクト固有ルール.gemini / GEMINI.md に書いておくと毎回反映される。
  • ファイル渡し@)とシェル実行!)を組み合わせると、ローカル開発ワークフローに自然に統合できます

/restore に対する提案

チェックポイント戦略

  • 自動チェックポイント作成タイミング
    • ツール実行前(必須)
    • マージ前の自動操作前
    • 大きな依存更新前
  • 命名規則(推奨)<YYYYMMDD>_<user>_<action>_<short-desc> 例:20251226_user_tool-refactor-1
  • 保持ポリシー:直近30日分は保持、重要チェックポイントはタグ付けして90日保持

安全な復元手順(運用フロー)

  1. /restore で復元可能チェックポイント一覧を取得。
  2. 対象IDを選び、dry-run(差分表示)を実行して影響範囲を確認。
  3. 復元実行。復元後、自動で新しいチェックポイント(ロールバックポイント)を作成。
  4. 復元ログをチームの監査ログに記録。

コマンド例(想定)

  • 一覧表示 /restore
  • 差分確認(dry-run) /restore 20251226_user_tool-refactor-1 --dry-run
  • 復元実行 /restore 20251226_user_tool-refactor-1 --confirm

注意点と提案

  • 未保存のローカル変更は復元で上書きされるため、復元前に自動でローカル変更をstash/バックアップするフックを用意する。
  • 権限管理:復元操作は限定ユーザーのみ実行可能にする(RBAC)。
  • 監査ログ:誰がいつ復元したかを必ず記録する。

/compress に対する提案

圧縮ポリシー

  • 実行タイミング:会話が一定トークン数を超えたとき、またはセッション終了前に定期実行。
  • バックアップ:圧縮前に元の会話ログをアーカイブ(短期保存)する。
  • レベル定義brief(要点のみ)、normal(決定事項+未解決タスク)、detailed(技術的要点+重要ログ)

要約テンプレート(プロンプト例)

  • 短め(brief) これまでの会話を3〜5行で要約してください。重要な決定事項と未解決タスクだけを含めてください。
  • 通常(normal) これまでの会話を要点、決定事項、未解決タスク、次のアクションの4つに分けて要約してください。各項目は箇条書きで、技術的な変更点はファイル名と行数の目安を含めてください。
  • 詳細(detailed) これまでの会話を技術的な観点で詳細に要約してください。重要なログ、エラー、コマンド実行結果、提案された修正案を含め、復元や再現に必要な情報を残してください。

実行例

/compress --level normal --backup true

運用上の注意

  • 不可逆性の回避:圧縮後も元ログを一定期間保持する(例:7日)。
  • 要約の検証:重要な決定は人間が承認するフローを入れる。

注意すべきこと

パソコンの中にあるファイルやプログラムを壊してしまうことがあり自分でバックアップすることが重要である

文法エラーを出す場合がありビルドまで行ってもらう

実行エラーはエラーをして実行エラーはペーストして指示を出す

geminiを実行したフォルダーで修正ができるのでそこにプログラムを置きます

call D:\WinPython\scripts\env_for_icons.bat  %*
SET PATH=%PATH%;%WINPYDIRBASE%\PortableGit;%WINPYDIRBASE%\PortableGit\bin
SET PATH=%PATH%;%WINPYDIRBASE%\ffmpeg\bin

cD "C:\GeminiCLI"
gemini --checkpointing

cmd.exe /k

テンプレートとサンプルファイル

推奨 .gemini(プロジェクトルート)

# プロジェクトの前提
project: MyReactApp
stack: React; TypeScript; Jest
rules: ESLint + Prettier; commit-msg hook required

# チェックポイントポリシー
checkpointing: enabled
checkpoint_naming: "%Y%m%d_%user%_%action%_%short%"
checkpoint_retention_days: 30

# compress settings
compress_default_level: normal
compress_backup_days: 7

windows,お得&便利

Posted by eightban