Gemini CLI の簡単チュートリアル
Gemini CLI チュートリアル
tl;dr
- コマンドラインで対話的に使えるオープンソースのAIエージェント。
-
npx https://github.com/google-gemini/gemini-cliですぐに利用開始。 -
@でローカルファイルやディレクトリをAIのコンテキストに追加。 -
!でシェルコマンドを直接実行、シェルモードへの切り替えも可能。 -
GEMINI.mdファイルでプロジェクト毎のカスタム指示をAIに記憶させる。 - Google検索との連携、安全なサンドボックスでの実行、ツールの自作など高い拡張性。
1. はじめに
Gemini CLI へようこそ!
このドキュメントは、Googleが開発したオープンソース(Apache 2.0ライセンス)のコマンドラインAIエージェント「Gemini CLI」のチュートリアルです。コーディング作業の補助はもちろん、リサーチ、コンテンツ生成、日々の定型タスクの自動化まで、開発者のあらゆるワークフローを加速させる多目的ツールとして設計されています。
このガイドでは、基本的な使い方から、内部の仕組み、そして応用的なカスタマイズ方法までを網羅的に解説します。このガイドを読み終える頃には、あなたもGemini CLIを自在に操り、開発ワークフローの強力な相棒として活用できるようになるでしょう。
2. クイックスタート
まずはGemini CLIを使い始めるための簡単なステップです。
前提条件
- Node.js のバージョン20以上がインストールされていること。
インストールと初回起動
ターミナルを開き、以下のコマンドを実行するだけです。
npx https://github.com/google-gemini/gemini-cli
もしくは、グローバルにインストールすることもできます。
npm install -g @google/gemini-cli
初回起動時には、いくつかの設定を行います。
- テーマの選択: まず、CLIの見た目のテーマを選択します。お好みのものを選んでください。
- 認証: 次に、ブラウザが開きGoogleアカウントでのログインを求められます。指示に従って認証を完了してください。これにより、プレビュー期間中はGemini 2.5 Proとその広大な100万トークンのコンテキストウィンドウを、毎分60リクエスト・毎日1,000リクエストまで無料で利用できます。
認証が完了すれば、準備はOKです!
3. Gemini CLIでできること(具体例)
Gemini CLIは、単なるチャットツールではありません。ローカル環境と深く連携し、様々なタスクを実行できます。
新しいコードベースを探索する
# リポジトリをクローンして、そのディレクトリに入る
git clone https://github.com/some/repository
cd repository
gemini
> このシステムのアーキテクチャの主要な部分を説明して。
> どのようなセキュリティ機構が導入されていますか?
既存のコードを操作する
gemini
> GitHubのIssue #123 を実装する初稿を作成して。
> このコードベースを最新版のJavaに移行するのを手伝って。まずは計画から立ててほしい。
ワークフローを自動化する
gemini
> 直近7日間のgit履歴を、機能と担当者でグループ分けしてスライド資料を作成して。
> 最もインタラクションの多いGitHub Issueを表示する、壁掛けディスプレイ用のフルスクリーンWebアプリを作って。
システムを操作する
gemini
> このディレクトリにある全ての画像をpngに変換し、exifデータの日付を使ってリネームして。
> PDFの請求書を、支出の月ごとに整理して。
4. 基本的な使い方
対話モード(インタラクティブモード)
プロジェクトのディレクトリ、あるいは新しい空のディレクトリで、以下のコマンドを打ちます。
gemini
すると、> というプロンプトが表示され、Geminiとの対話モードが始まります。あとは自然な日本語で話しかけるだけです。
対話を終了するには、/quit または /exit と入力します。
非対話モード(コマンドラインモード)
シェルスクリプトに組み込むなど、単発の命令で利用したい場合は、--prompt (または -p) フラグを使って非対話モードで実行できます。
gemini --prompt "1から10までの素数をリストアップして"
# パイプで渡すことも可能です
echo "日本の首都はどこですか?" | gemini
5. コマンドリファレンス
Gemini CLIには、3種類のコマンド形式があります。
- 起動時のコマンドライン引数 (例:
gemini --model ...) - 対話モード中のスラッシュコマンド (例:
/help) - プロンプトに含める特殊な接頭辞 (例:
@や!)
それぞれを詳しく見ていきましょう。
5.1. コマンドライン引数
gemini --help を実行すると確認できるオプションです。
-
--model <モデル名>(短縮形:-m)
使用するGeminiモデルを指定します。デフォルト以外(例:gemini-2.5-flash-latest)を使いたい場合に指定します。 -
--prompt <プロンプト>(短縮形:-p)
非対話モードで実行する際のプロンプトを指定します。 -
--all-files(短縮形:-a)
カレントディレクトリ以下のすべてのファイルを再帰的に読み込み、コンテキストとしてプロンプトに含めます。 -
--sandbox(短縮形:-s)
ツール(特にシェルコマンド)の実行を安全なサンドボックス環境(Docker)内で行います。 -
--sandbox-image <イメージURI>
サンドボックスとして使用するカスタムDockerイメージを指定します。 -
--yolo
"You Only Live Once"モード。ツールの実行前に確認を求めず、すべて自動で承認します。サンドボックスが有効になっていることが推奨されます。 -
--checkpointing
ツールの実行前にファイルの状態を保存(チェックポイントを作成)し、/restoreコマンドで復元できるようにします。 -
--debug_mode(短縮形:-d)
デバッグ用の詳細なログを出力します。 -
--version
CLIのバージョン情報を表示します。 -
その他、テレメトリ(利用状況の統計)に関する
--telemetry系のフラグがあります。
5.2. スラッシュコマンド
対話モード中に /<コマンド> 形式で入力します。
-
/helpまたは/?
利用可能なすべてのスラッシュコマンドとその説明を表示します。 -
/quitまたは/exit
Gemini CLIを終了します。 -
/clear
ターミナルの表示をクリアします。(ショートカット:Ctrl+L) -
/chat
会話の履歴を管理します。-
/chat save <タグ名>: 現在の会話に名前(タグ)を付けて保存します。 -
/chat resume <タグ名>: 保存した会話を呼び出します。 -
/chat list: 保存した会話のタグリストを表示します。
-
-
/memory
GEMINI.mdファイルによって読み込まれたAIの記憶(コンテキスト)を管理します。-
/memory show: 現在AIが記憶しているコンテキストの全内容を表示します。 -
/memory refresh:GEMINI.mdファイルをすべて再読み込みします。 -
/memory add <記憶させたいテキスト>: 現在のセッションに限り、一時的な記憶を追加します。
-
-
/tools
現在利用可能なツールの一覧を表示します。-
/tools desc: 各ツールの詳細な説明を表示します。
-
-
/mcp
接続されているMCP(Model Context Protocol)サーバーと、そこから提供されるツールの一覧を表示します。 -
/restore [tool_call_id]
--checkpointingが有効な場合、ツール実行前の状態にプロジェクトファイルを復元します。IDを指定しない場合は、復元可能なチェックポイントの一覧を表示します。 -
/compress
それまでの会話履歴をAIに要約させ、その要約でコンテキストを置き換えます。トークンを節約したい長い会話の途中で便利です。 -
/stats
現在のセッションにおけるトークン使用量、API呼び出し回数、時間などの統計情報を表示します。 -
/theme
CLIの見た目のテーマを選択するダイアログを開きます。 -
/auth
認証方法を変更するためのダイアログを開きます。 -
/editor
差分表示などに使用するエディタを選択するダイアログを開きます。 -
/bug
バグ報告用のURLを生成し、ブラウザで開きます。 -
/about
バージョンやビルド情報などを表示します。バグ報告時に役立ちます。
5.3. 特殊な接頭辞
プロンプトに含めることで特別な動作をします。
-
@<ファイルパス>または@<ディレクトリパス>
指定されたファイルまたはディレクトリの内容を読み込み、プロンプトのコンテキストに含めます。.gitignoreを尊重するため、不要なファイル(node_modulesなど)は自動的に除外されます。
例:@src/utils.ts この関数のテストを書いてください。 -
!<シェルコマンド>
指定されたコマンドを直接シェルで実行し、結果を表示します。
例:!git diff --staged -
!(単体)
シェルモードのオン/オフを切り替えます。シェルモード中は、すべての入力がシェルコマンドとして扱われます。
6. 設定ファイル (settings.json)
Gemini CLIの挙動は settings.json ファイルで細かくカスタマイズできます。設定は以下の順で読み込まれ、後のものが優先されます。
- グローバル設定:
~/.gemini/settings.json - プロジェクト設定:
(プロジェクトルート)/.gemini/settings.json
以下に主要な設定項目を解説します。
-
theme(文字列)
CLIのテーマ名。例:"GitHub" -
contextFileName(文字列 または 文字列の配列)
コンテキストファイルとして認識するファイル名を指定します。デフォルトは"GEMINI.md"ですが、"CONTEXT.md"などに変更したり、["GEMINI.md", "PROMPT.md"]のように複数指定したりできます。 -
fileFiltering(オブジェクト)
@コマンドの挙動を制御します。-
respectGitIgnore(真偽値):trueの場合、.gitignoreを尊重します。デフォルトはtrue。 -
enableRecursiveFileSearch(真偽値):@の入力補完のためにファイルを再帰的に探すかどうか。デフォルトはtrue。
-
-
autoAccept(真偽値)
trueにすると、読み取り専用など安全だと判断されたツールの実行確認をスキップします。デフォルトはfalse。 -
sandbox(真偽値 または 文字列)
サンドボックスの利用設定。trueまたは"docker"で有効になります。デフォルトはfalse。 -
checkpointing(オブジェクト)
チェックポイント機能を設定します。-
enabled(真偽値):trueで/restoreコマンドが有効になります。デフォルトはfalse。
-
-
preferredEditor(文字列)
差分表示などに使うエディタを指定します。デフォルトは"vscode"。 -
coreTools/excludeTools(文字列の配列)
モデルに提供する組み込みツールを明示的に指定したり、除外したりできます。 -
mcpServers(オブジェクト)
カスタムツールを提供するMCPサーバーを定義します。サーバーごとに起動コマンドや引数、環境変数を設定できます。
7. 内部の仕組み: プロンプトはどのように作られるか
Gemini CLIにプロンプトを入力すると、それは直接AIモデルに送られるわけではありません。CLIは、AIがより賢く、文脈に沿った応答を返せるように、様々な情報を付加して最終的なプロンプトを組み立てます。この仕組みを理解すると、Gemini CLIをより効果的に活用できます。
最終的にAIモデルに送られるプロンプトは、主に以下の要素から構成されます。
- システムインストラクション (System Instruction)
- ツール定義 (Tool Definitions)
- 会話の履歴 (Chat History)
- ユーザーの最新プロンプト (User's Latest Prompt)
1. システムインストラクション
これはAIモデルの基本的な振る舞いを定義する指示です。ここには、GEMINI.md から読み込まれた内容が含まれます。
CLIは、以下の場所から GEMINI.md (または contextFileName で指定されたファイル) を探し、その内容を連結してシステムインストラクションに加えます。
- グローバルなコンテキスト:
~/.gemini/GEMINI.md - プロジェクトのコンテキスト: プロジェクトルートやその親ディレクトリにある
GEMINI.md - ローカルなコンテキスト: カレントディレクトリ以下のサブディレクトリにある
GEMINI.md
これにより、「このプロジェクトでは必ずこの規約に従うように」といった階層的な指示が可能になります。
2. ツール定義
Gemini CLIは、read_file や run_shell_command といった「ツール」を使えます。さらに、組み込みのGoogle検索ツールも利用可能です。AIモデルがこれらのツールを正しく使えるように、各ツールの機能、引数、使い方をまとめた「定義書」がプロンプトに含められます。これにより、AIは「この作業にはあのツールが使えそうだ」と判断できるようになります。
3. 会話の履歴
過去のやり取りも重要なコンテキストです。それまでのユーザーとAIの会話履歴がすべて含まれます。
4. ユーザーの最新プロンプト
そして最後に、ユーザーが入力した最新のプロンプトが追加されます。@ コマンドを使った場合は、ここでファイルの実際の内容が展開されて挿入されます。
8. オープンソースと拡張性
Gemini CLIは、Apache 2.0ライセンスの下で公開されている完全なオープンソースプロジェクトです。これは、誰でもソースコードを閲覧、検証し、改善に貢献できることを意味します。
- コードの透明性: 内部で何が起きているかを正確に把握できます。
- コミュニティによる貢献: バグ修正や新機能の提案を歓迎しています。
- カスタマイズ: 自身でフォークして、特定のニーズに合わせた独自のバージョンを作成することも可能です。
また、このツールはGoogleのAIコーディングアシスタントであるGemini Code Assistと技術を共有しており、VS CodeなどのIDEでも同様の強力なAIエージェント機能を利用できます。
9. チュートリアルは以上です
この詳細なガイドが、あなたのGemini CLI習熟の一助となれば幸いです。
紹介したコマンドや設定を試し、GEMINI.md を活用して、ぜひあなたのプロジェクトに最適化されたAIアシスタントを育て上げてください。
Gemini CLIと共に、より創造的で効率的な開発ライフをお楽しみください!
参考文献
10. さいごに
Gemini CLI、実際使ってみて、第一印象として Google 検索と結びついていること、MCP 連携で画像・動画・音声生成に繋ぎ込みやすいということ、スラッシュコマンドのタブ補完のあと実行してくれるなど絶妙に体験が良いので、Claude Code 勢のうち一定の数はお引越しされるのではないかと思いました。ゆる開発勢には無料利用枠があるのもうれしい。gemini --prompt "<URL> <prompt>" のように Google 検索をパイプラインで繋ぐこともできたり、応用の余地は大きいように感じています。
おまけ
GEMINI.md のドメインは取得されていないようでした!CLAUDE.md はいい感じに公式ドキュメントに飛ぶのに...!
Discussion
参考になる記事の公開ありがとうございます。
Gemini CLIは現在のNode.jsのバージョン20以上を前提としているようです。
Gemini CLI 公開時は 18 でしたが、もう 20 以上が必須になったのですね。修正しました。助かりました。ありがとうございます。