💨

Gemini CLI の簡単チュートリアル

に公開
2

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

初回起動時には、いくつかの設定を行います。

  1. テーマの選択: まず、CLI の見た目のテーマを選択します。お好みのものを選んでください。
  2. 認証: 次に、ブラウザが開き 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 種類のコマンド形式があります。

  1. 起動時のコマンドライン引数 (例: gemini --model ...)
  2. 対話モード中のスラッシュコマンド (例: /help)
  3. プロンプトに含める特殊な接頭辞 (例: @!)

それぞれを詳しく見ていきましょう。

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 ファイルで細かくカスタマイズできます。設定は以下の順で読み込まれ、後のものが優先されます。

  1. グローバル設定: ~/.gemini/settings.json
  2. プロジェクト設定: (プロジェクトルート)/.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 モデルに送られるプロンプトは、主に以下の要素から構成されます。

  1. システムインストラクション (System Instruction)
  2. ツール定義 (Tool Definitions)
  3. 会話の履歴 (Chat History)
  4. ユーザーの最新プロンプト (User's Latest Prompt)

1. システムインストラクション

これは AI モデルの基本的な振る舞いを定義する指示です。ここには、GEMINI.md から読み込まれた内容が含まれます。

CLI は、以下の場所から GEMINI.md (または contextFileName で指定されたファイル) を探し、その内容を連結してシステムインストラクションに加えます。

  • グローバルなコンテキスト: ~/.gemini/GEMINI.md
  • プロジェクトのコンテキスト: プロジェクトルートやその親ディレクトリにある GEMINI.md
  • ローカルなコンテキスト: カレントディレクトリ以下のサブディレクトリにある GEMINI.md

これにより、「このプロジェクトでは必ずこの規約に従うように」といった階層的な指示が可能になります。

2. ツール定義

Gemini CLI は、read_filerun_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 と共に、より創造的で効率的な開発ライフをお楽しみください!


参考文献

https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/

https://github.com/google-gemini/gemini-cli

10. さいごに

Gemini CLI、実際使ってみて、第一印象として Google 検索と結びついていること、MCP 連携で画像・動画・音声生成に繋ぎ込みやすいということ、スラッシュコマンドのタブ補完のあと実行してくれるなど絶妙に体験が良いので、Claude Code 勢のうち一定の数はお引越しされるのではないかと思いました。ゆる開発勢には無料利用枠があるのもうれしい。gemini --prompt "<URL> <prompt>" のように Google 検索をパイプラインで繋ぐこともできたり、応用の余地は大きいように感じています。

おまけ

GEMINI.md のドメインは取得されていないようでした!CLAUDE.md はいい感じに公式ドキュメントに飛ぶのに...!

https://x.com/schroneko/status/1937877542519923100

GitHubで編集を提案

Discussion

Seiki TokunagaSeiki Tokunaga

参考になる記事の公開ありがとうございます。
Gemini CLIは現在のNode.jsのバージョン20以上を前提としているようです。

ぬこぬこぬこぬこ

Gemini CLI 公開時は 18 でしたが、もう 20 以上が必須になったのですね。修正しました。助かりました。ありがとうございます。