🔷

はじめてのGemini CLI入門

に公開

はじめに

本記事では、Gemini CLIの環境をゼロから構築し、簡単なコマンド操作を試すまでの手順を解説します。

Gemini CLIとは?

Gemini CLIは、Googleの生成AIモデル「Gemini」をコマンドラインからサクッと利用するための公式ツールです。テキストベースでAIと対話しながら、コード生成、技術調査、ドキュメント作成など、様々なタスクを効率化できます。

利用上限

プレビュー期間中はGemini 2.5 Proを1分あたり最大60件、1日あたり最大1,000件のモデルリクエストが無料で利用できます。

前提条件

Node.js: v20以上
その他: Googleアカウント

実行環境の準備

Gemini CLIは、Node.js v20以上の実行環境が必要です。まず、お使いのOSにNode.jsをインストールします。

Node.jsのインストール

  1. Node.jsの公式サイトにアクセスします。

  2. インストーラーのダウンロード
    ダウンロードページに表示されている「LTS」版のインストーラーをダウンロードします。

  3. インストール
    ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを完了させます。基本的に設定の変更は不要です。

  4. インストールの確認
    インストール後、ターミナル(WindowsならPowerShell、macOSならターミナル)を開き、以下のコマンドを実行してバージョン番号が表示されることを確認します。

node -v
  1. v20から始まるバージョンが表示されればOKです。
v20.10.0

Gemini CLIのインストール

次に、Gemini CLI本体のインストールとアカウント認証を進めます。

インストール

以下のnpmコマンドでインストールできます。

npm install -g @google/gemini-cli

インストールの確認

gemini -vを実行し、バージョン番号が表示されればインストール成功です。

gemini -v

セキュリティエラーが表示された場合

インストールの確認時に、以下のようなセキュリティエラーが表示された方は権限の変更が必要となります。

gemini : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\gemini.ps1 を読み込む
ことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ gemini
+ ~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

権限の変更

PowerShellを管理者権限で開き、以下のコードを実行し権限を変更します。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

権限の変更確認

権限が変更されたことを、以下のコードで確認します。

Get-ExecutionPolicy -List

以下のようにLocalMachineRemoteSignedに変更されていればOKです。

Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

権限が変更されていることが確認できたら、再度Gemini CLIがインストールされていることを確認してください。

初期設定(認証)

以下のコマンドで、Gemini CLIを起動します。

gemini

Gemini CLI起動後、ブラウザが起動するので画面の指示に従ってアカウントへのアクセスを許可してください。

これで基本的な環境構築は完了です。

Google Workspaceアカウントで認証エラーがでた場合

Googleアカウント認証後、以下のようなエラーがでた場合、Google Workspaceアカウントによる環境変数とGCP(Google Cloud Platform)プロジェクトの設定が必要になります。

Failed to login. Message: This account requires setting the GOOGLE_CLOUD_PROJECT env var.   │
│ See https://goo.gle/gemini-cli-auth-docs#workspace-gca

環境変数へプロジェクトIDの指定

Gemini CLIと連携するGCP(Google Cloud Platform)のプロジェクトIDを確認し、環境変数を設定します。
GCPのプロジェクトがない場合は新規作成してください。
環境変数はC:\Users\{ユーザー名}\.gemini以下に.envファイルを作成し、以下のようにGOOGLE_CLOUD_PROJECTの値を指定してください。

GOOGLE_CLOUD_PROJECT={プロジェクトID}

Gemini for Google Cloudの有効化

プロジェクトメニューから、APIとサービスを開き、+APIとサービスを有効にするを選択します。検索ボックスにGemini for Google Cloudと入力して選択し、有効にするボタンをクリックして有効化してください。

アカウントの設定

プロジェクトメニューからIAMと管理を開き、ご自身のアカウントの編集アイコンをクリックしてください。別のロールを追加を選択し、Gemini for Google Cloud ユーザーを追加してください。

これでGoogle Workspaceアカウント設定は完了です。再度Googleアカウント認証ができることを確認してください。

基本的な使い方

準備が整ったので、実際に使ってみましょう。

非会話モード(コマンド実行)

geminiコマンドに続けて、AIへの指示を文字列で渡すことができます。

gemini --prompt "Hello, World!"

会話モード

geminiとだけ打つと、AIとの対話モードになります。

gemini

会話モードでは自由に質問や指示を入力できます。

会話を終えるときは /exit と入力します。

ファイルの操作

Gemini CLIではローカルファイルの操作が可能です。

ファイルの検索

"このディレクトリにある、拡張子が.txtのファイル名を教えて"

ファイル内容の要約

"document.txtの内容を要約して"

ファイル内容の書き換え

"document.txtの内容を要約した内容に書き換えて"

応用編

ここでは、「プロジェクト」という考え方が重要になります。

プロジェクトとは、特定の目的のための作業を集約する専用のディレクトリ(フォルダ)のことです。

例えば、my-gemini-project という名前のディレクトリを作成し、その中で作業を行えば、そのディレクトリがあなたのプロジェクトの「ルート」になります。

# プロジェクト用ディレクトリを作成して、そこに移動する
mkdir my-gemini-project
cd my-gemini-project

Gemini CLIは、このプロジェクトのルートを基点として、後述する .gemini/ ディレクトリや GEMINI.md ファイルを探しに行きます。このように作業空間を明確に分けることで、Gemini CLIの強力なコンテキスト管理能力を最大限に引き出すことができます。

AIにプロジェクトのルールを記憶させる (GEMINI.md)

プロジェクトのルートディレクトリやサブディレクトリにGEMINI.mdという名前のファイルを作成しておくと、CLIはその内容を自動で読み込み、AIへの永続的な指示としてコンテキストに追加します。これにより、AIはプロジェクト固有のルールや背景を理解した上で応答を生成するようになります。

活用例

文章スタイルの統一
「です・ます調で書く」「読者フレンドリーな口調で」といったルールを指示できます。

出力形式の指定
「必ず見出しと箇条書きを使う」「結論から先に書く」といった構成ルールを定義できます。

背景情報の共有
プロジェクトの目的やターゲット読者層などを記述し、AIに全体像を把握させます。

このGEMINI.mdは階層的に読み込まれるため、プロジェクト全体に共通のルールと、特定のディレクトリ配下でのみ有効なルールを柔軟に組み合わせることが可能です。

GEMINI.mdの記述例
以下の内容をコピーして、あなたのプロジェクトのルートにGEMINI.mdとして保存するだけで、すぐに効果を試せます。

# ブログ記事執筆プロジェクトのルール

## 1. 文体とトーン
- 「です・ます調」を基本とします。
- 読者に語りかけるような、親しみやすい文章を心がけてください。
- 専門用語を使う場合は、必ず簡単な解説を加えてください。

## 2. 記事の構成
- **導入:** 記事のテーマと読者が得られるメリットを提示します。
- **本編:** 見出しを使って、情報を分かりやすく整理します。
- **まとめ:** 記事全体の要点を簡潔に振り返ります。

## 3. 表現のルール
- 一文は80文字以内で、簡潔に記述してください。
- 箇条書きや太字を積極的に使い、視覚的に分かりやすい記事を作成してください。

よく使うプロンプトを再利用可能なコマンドにする (カスタムスラッシュコマンド)

毎回同じようなプロンプトを入力するのは非効率です。Gemini CLIでは、よく使うプロンプトを.toml形式のファイルとして保存し、自分だけのオリジナルコマンドとして登録できます。

コマンド名は、commandsディレクトリを基準としたファイルパスによって決定されます。サブディレクトリは、名前空間付きコマンドを作成するために使用され、パス区切り文字(/または\)はコロン(:)に変換されます。

作成方法

今回は例として、「プレーンなテキストファイルをMarkdown形式にフォーマットする」コマンドを作成してみましょう。.gemini/commands/format/markdown.tomlというファイルを作成します。

description = "テキストファイルをMarkdown形式にフォーマットします。"
prompt = """
受け取ったテキスト内容を分析し、以下のようにマークダウン形式で書き直してください。
- 文書の主題を抽出し、H1見出し(#)としてください。
- 文書内の論理的な区切りをH2見出し(##)としてください。
- 箇条書きにできる部分は、リスト(- )にしてください。
- 強調すべきキーワードは、太字(**キーワード**)にしてください。
"""

実行方法

.gemini/commands/format/markdown.toml というファイルは /format:markdown というコマンドとして呼び出せます。
catコマンドとパイプ(|)を組み合わせることで、任意のファイルに対してこのコマンドを適用できます。

cat meeting-notes.txt | /format:markdown

これを実行すると、meeting-notes.txt の内容がpromptで指示したルール通りにフォーマットされ、標準出力に返されます。

詳細な設定 (settings.json)

Gemini CLIの挙動は、settings.jsonファイルでカスタマイズできます。このファイルは、ユーザーのホームディレクトリ配下(.gemini/settings.json)や、プロジェクトのルートディレクトリ配下(.gemini/settings.json)に配置することで、グローバルまたはプロジェクト単位での設定が可能です。

設定項目 説明
theme CLIの見た目を変更します。

設定可能なテーマ

ダーク系
`ANSI`, `Atom One`, `Ayu`, `Default`, `Dracula`, `GitHub`

ライト系
`ANSI Light`, `Ayu Light`, `Default Light`, `GitHub Light`, `Google Code`, `Xcode`
autoAccept 安全なツール実行の確認をスキップします。

設定可能な値
- `true`: 自動で承認する
- `false` (デフォルト): 毎回確認する
sandbox ツールを安全な隔離環境で実行します。

設定可能な値
- `true` / `"docker"`: Dockerを利用します。
- `"podman"`: Podmanを利用します。
- `false` (デフォルト): サンドボックスを無効にします。
checkpointing.enabled ファイル変更の自動バックアップを有効にします。

設定可能な値
- `true`: 有効にする
- `false` (デフォルト): 無効にする
fileFiltering.respectGitIgnore @コマンドでのファイル検索時に.gitignoreを尊重します。

設定可能な値
- `true` (デフォルト): 尊重する
- `false`: 尊重しない
usageStatisticsEnabled 匿名の使用状況統計の収集を許可します。

設定可能な値
- `true` (デフォルト): 許可する
- `false`: 許可しない
hideTips CLIのヒント表示を無効にします。

設定可能な値
- `true`: 非表示にする
- `false` (デフォルト): 表示する
hideBanner 起動時のロゴ(バナー)を非表示にします。

設定可能な値
- `true`: 非表示にする
- `false` (デフォルト): 表示する
maxSessionTurns 1セッションあたりの対話の最大回数を設定します。

設定可能な値
- 数値 (例: `10`)
- `-1` (デフォルト): 無制限
summarizeToolOutput 長大なツール出力を自動で要約します。

設定例
`{ "run_shell_command": { "tokenBudget": 2000 } }`

コマンドリファレンス

Gemini CLIには、セッションの管理、インターフェースのカスタマイズ、動作の制御を行うための便利な組み込みコマンドが用意されています。

スラッシュコマンド (/)

スラッシュから始まるコマンドは、CLI自体のメタ的な制御を提供します。

コマンド 説明 使用法 / サブコマンド
/bug Gemini CLIに関する問題を報告します。 /bug <問題のタイトル>
/chat 会話履歴を保存・再開します。 save <タグ>, resume <タグ>, list
/clear ターミナル画面をクリアします。 (ショートカット: Ctrl+L)
/compress チャットのコンテキスト全体を要約に置き換えます。
/copy 最後の出力をクリップボードにコピーします。
/editor サポートされているエディタを選択するダイアログを開きます。
/extensions アクティブな拡張機能の一覧を表示します。
/help or /? ヘルプ情報を表示します。
/mcp 設定済みのMCPサーバーとツールを一覧表示します。 desc, nodesc, schema (ショートカット: Ctrl+T)
/memory AIの指示コンテキストを管理します。 add <テキスト>, show, refresh
/restore ファイルをツール実行前の状態に復元します。 /restore [tool_call_id]
/stats セッションの統計情報を表示します。
/theme CLIの見た目を変更するダイアログを開きます。
/auth 認証方法を変更するダイアログを開きます。
/about バージョン情報を表示します。
/tools 利用可能なツールの一覧を表示します。 desc, nodesc
/privacy プライバシー通知を表示します。
/quit or /exit Gemini CLIを終了します。

アットコマンド (@)

アットマークから始まるコマンドは、ファイルやディレクトリの内容をプロンプトに含めるために使用します。

コマンド 説明 使用法
@<パス> 指定したファイルやディレクトリの内容をプロンプトに挿入します。 @path/to/file.txt このテキストを説明して
@ プロンプト内で@という文字そのものを使用します。 アットマーク(@)とは何ですか?

シェルコマンド (!)

感嘆符から始まるコマンドは、Gemini CLI内から直接システムのシェルと対話するために使用します。

コマンド 説明 使用法
!<コマンド> シェルコマンドを実行します。 !ls -la
! シェルモードのオン/オフを切り替えます。 !

おわりに

本記事では、Gemini CLIのセットアップ、使い方、設定などを簡単に説明しました。
単にコマンドを叩くだけでなく、GEMINI.mdでAIの挙動をプロジェクトに合わせてカスタマイズしたり、カスタムコマンドで定型作業を自動化したりすることで、日々の生産性を向上させることができます。
この記事を参考に、まずは簡単な質問からGemini CLIの第一歩を体感してみてください。

参考文献

https://github.com/google-gemini/gemini-cli
https://cloud.google.com/blog/topics/developers-practitioners/gemini-cli-custom-slash-commands?hl=en

Discussion