Gemini CLI のインストールと GEMINI.md の書き方:Google アカウントで無料で始める

Gemini CLI 公開: 更新:

Google の Gemini CLI をインストールし、Google アカウントでログインして使い始めるまでの手順と、Gemini CLI がプロジェクトのルールとして読み込む GEMINI.md の配置場所・書き方・/memory コマンドによる確認方法を解説します。

検証日 2026年10月21日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。 記事の作り方と検証手順
目次
  1. 前提条件
  2. インストール
  3. ログイン
  4. 最初のタスク
  5. GEMINI.md の役割と配置
  6. GEMINI.md のテンプレート
  7. 会話中に記憶させる
  8. まとめ

Gemini CLI は Google が公開しているオープンソースのターミナル向けコーディングエージェントです。最大の特徴は、個人の Google アカウントでログインするだけで、上限付きながら無料で使い始められることです。

この記事では、インストールからログイン、最初のタスクまでの手順と、プロジェクトのルールを伝えるための GEMINI.md の書き方をまとめます。

KEY POINT

この記事で分かること

  • インストールと Google アカウント / API キーでのログイン
  • GEMINI.md の配置場所、読み込みの仕組み、確認コマンド
  • そのまま使える GEMINI.md のテンプレート

前提条件

項目内容
Node.js20 以上
OSmacOS、Linux、Windows
アカウント個人の Google アカウント(無料枠)、Gemini API キー、または Google Cloud(Vertex AI)

インストール

# npm でグローバルインストール
npm install -g @google/gemini-cli

# または Homebrew (macOS / Linux)
brew install gemini-cli

# または MacPorts (macOS)
sudo port install gemini-cli

# インストールせずに試す
npx @google/gemini-cli

公式の README は npm・Homebrew・MacPorts・Anaconda の 4 通りを挙げています。Homebrew は macOS だけでなく Linux も対象です。

gemini --version

ログイン

プロジェクトのディレクトリで gemini を起動すると、初回に認証方法を選ぶ画面が出ます。

cd path/to/project
gemini
認証方法特徴
Google アカウントでログインブラウザで認証。個人アカウントなら無料枠で利用できる
Gemini API キーGoogle AI Studio で発行。環境変数 GEMINI_API_KEY に設定
Vertex AIGoogle Cloud プロジェクト経由。企業利用向け
# API キーを使う場合
export GEMINI_API_KEY="your-key"

無料枠の上限やデータの扱いは Gemini CLI の無料枠と制限 で詳しく説明しています。

最初のタスク

このリポジトリの構成を説明して。テストの実行方法も教えて

Gemini CLI はファイルを読み、必要ならコマンドを実行します。ファイルの変更やコマンド実行の前には確認が入ります。「常に許可」を選ぶと、そのセッション中は同種の操作が自動で通ります。

対話中の主なコマンド:

コマンド内容
/helpコマンド一覧
/memory show読み込まれた GEMINI.md の内容を表示
/memory refreshGEMINI.md を再読み込み
/tools使えるツールの一覧
/mcpMCP サーバーの状態
/statsトークン使用量
/clear画面と履歴をクリア

GEMINI.md の役割と配置

Gemini CLI は起動時に GEMINI.md を探して読み込み、プロジェクトの前提として扱います。Claude Code の CLAUDE.md、Codex の AGENTS.md と同じ役割です。

配置場所用途
~/.gemini/GEMINI.md全プロジェクト共通の個人的な好み
リポジトリのルート GEMINI.mdチームで共有するプロジェクトのルール
サブディレクトリの GEMINI.mdそのディレクトリ配下で作業するときに追加で読み込まれる

読み込まれた内容は結合され、/memory show で確認できます。

用語解説

context.fileName 設定: settings.json の context.fileName(context オブジェクト配下の fileName)を変更すると、GEMINI.md 以外のファイル名(例: AGENTS.md)を読み込ませることができます。Codex と同じファイルを共有したいときに使います。詳細は CLAUDE.md・AGENTS.md・GEMINI.md の違いと共通化テクニック を参照してください。

GEMINI.md のテンプレート

# プロジェクト概要
Django + React の社内ツール。バックエンドは `backend/`、フロントは `frontend/`。

## コマンド
- バックエンドのテスト: `cd backend && pytest`
- フロントのテスト: `cd frontend && npm test`
- Lint: `cd backend && ruff check .` / `cd frontend && npm run lint`
- 開発サーバー: `docker compose up`

## 規約
- Python は型ヒント必須。`Any` は使わない
- React は関数コンポーネントのみ。状態管理は既存の Zustand ストアを使う
- API のスキーマは `backend/api/schemas/` に置き、フロントの型は生成コマンドで更新する

## 変更禁止
- `backend/migrations/` の既存ファイル
- `frontend/src/generated/`

## 作業の進め方
- 変更前に関連テストを読む
- 複数ファイルにまたがる変更は方針を先に提示する
- 完了報告には実行したコマンドと結果を含める

/init を実行すると、Gemini CLI がプロジェクトを調べて雛形を生成します。README で分かる内容は削り、「見ただけでは分からない約束事」だけを残すのは、他のツールと同じ考え方です(CLAUDE.md の書き方 の方針がそのまま使えます)。

会話中に記憶させる

/memory add <内容> を実行すると、その内容がユーザーの GEMINI.md に追記されます。繰り返し伝えている好みは、このコマンドで書き込んでおくと次回以降も反映されます。

まとめ

  • npm install -g @google/gemini-cli で入れ、gemini を起動して Google アカウントでログインする
  • GEMINI.md は ~/.gemini/、リポジトリのルート、サブディレクトリの 3 階層で結合される
  • /memory show で読み込み状況を確認し、/memory refresh で再読み込みする
  • /init で雛形を作り、コマンド・規約・変更禁止・進め方の 4 種類に絞る

よくある質問

Gemini CLI は本当に無料で使えますか?
個人の Google アカウントでログインすると、1 分あたり・1 日あたりの上限付きで無料で使えます。上限を超える使い方や商用の要件がある場合は API キーや Vertex AI を使います。
Homebrew でインストールできますか?
できます。公式の README は brew install gemini-cli を macOS と Linux 向けの方法として挙げています。ただしリリースチャンネル(preview / latest / nightly)を選ぶには npm のタグ指定が必要です。
GEMINI.md はどこに置きますか?
全プロジェクト共通は ~/.gemini/GEMINI.md、プロジェクト共通はリポジトリのルート、サブディレクトリ固有のルールはそのディレクトリに置きます。
読み込まれている GEMINI.md を確認するには?
対話中に /memory show を実行すると、読み込まれた内容が表示されます。編集後は /memory refresh で再読み込みできます。

読者からの質問と回答

Q. Gemini CLI で node_modules を list_directory すると「resolves outside the allowed workspace directories」と出ます。プロジェクトの中にあるのになぜですか。

編集部の回答質問の出典: GitHub google-gemini/gemini-cli Issue #29863

エラーメッセージが実際の原因と違うため、ワークスペースの設定をいじっても直りません。

表示されるのは次のメッセージです。

Path not in workspace: Attempted path "/home/you/node_modules" resolves outside
the allowed workspace directories

文面は「ワークスペースの外にある」と言っていますが、報告されているのは プロジェクトの中にある node_modules です。報告者がソースを追ったところ、node_modules・.git・.env というパスの区切りを含むパスは無条件にブロックされ、そのあとワークスペース内かどうかの判定が false を返すため、「外にある」というメッセージに落ちる、という流れでした。これは報告者の調査で、公式ドキュメントに記載のある挙動ではありません。

ワークスペースにディレクトリを足しても解決しません。 原因が別だからです。公式に文書化されているディレクトリの追加方法は次のもので、これはワークスペースの外にあるディレクトリを対象に含めるための機能です。

gemini --include-directories ../lib,../docs

依存関係の中身を読ませたい場合、現時点でできるのは次のどちらかです。

方法内容
パスを直接渡さない「この依存の実装を確認して」と伝え、モデル側に探させる
読みたいファイルをコピーする対象ファイルを作業ディレクトリに写してから渡す

同じ文面でも本当にワークスペース外のことがある

パスに node_modules・.git・.env を含まないのに同じエラーが出る場合は、文字どおりワークスペースの外を指しています。その場合は --include-directories でそのディレクトリを追加してください。見分け方は、パスにこの 3 つの名前が含まれているかどうかです。

なお v0.65.0 では、無視ファイルのフィルタリングが最適化されてサブツリーの枝刈りが有効になりました(PR #29582)。これは探索の速度の改善で、このエラーの修正ではありません。v0.65.0 の変更点は Gemini CLI v0.65 で未信頼フォルダの設定が読み取り専用に強制 にまとめてあります。

Q. rootless podman で Gemini CLI のサンドボックスを使うと、ビルド時に EACCES(権限エラー)になります。

編集部の回答質問の出典: GitHub google-gemini/gemini-cli Issue #29338

rootless podman は既定でユーザー名前空間を使うため、コンテナ内の UID がホストの UID に直接対応しません。その結果、バインドマウントしたファイルへの書き込みが拒否され、node-gyp のようにビルドディレクトリを作り直すツールが EACCES で失敗します。

Gemini CLI には、コンテナランタイムへ任意のフラグを渡す受け皿が用意されています。公式ドキュメントは「コンテナ型のサンドボックスでは、SANDBOX_FLAGS 環境変数で docker または podman コマンドにカスタムフラグを注入できる」と説明しています。複数指定は空白区切りです。

podman 側で UID を対応させるフラグは --userns=keep-id です。これを渡します。

export GEMINI_SANDBOX=podman
export SANDBOX_FLAGS="--userns=keep-id"
gemini --sandbox

SELinux が有効な環境(Fedora 系など)でマウントの権限エラーも出る場合は、公式ドキュメントが例示している --security-opt label=disable を併せて渡します。

export SANDBOX_FLAGS="--userns=keep-id --security-opt label=disable"

なお --userns=keep-id は podman 側のフラグで、Gemini CLI の公式ドキュメントが例として挙げているのは --security-opt label=disable です。--userns=keep-id 自体は公式ドキュメントには記載がありません。SANDBOX_FLAGS でランタイムのフラグを渡せる、という仕組みが公式に案内されている部分です。

GEMINI_SANDBOX に指定できる値は true、docker、podman、sandbox-exec、runsc、lxc です。--security-opt label=disable は SELinux のラベル付けを無効にするため、必要な環境だけで使ってください。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。