- Gemini CLIはプロジェクト全体のコンテキストを理解した高精度なコード補完・提案を実現
- Gemini 2.5 Proの100万トークンウィンドウで大規模リポジトリの横断的な補完が可能
- SES現場で即使える実践的な補完テクニックと設定カスタマイズ法を紹介
「AIコード補完」と聞くと、GitHub CopilotやCursorを思い浮かべる方が多いでしょう。しかし、Gemini CLIの補完・提案機能は、CLI型ツールならではの強みを活かし、独自の高い生産性を実現しています。本記事では、Gemini CLIのコード補完・提案機能を徹底的に掘り下げ、SES開発現場での活用法を解説します。
- Gemini CLIのコード補完・提案機能の仕組みと特徴
- 100万トークンコンテキストを活かした大規模プロジェクトでの補完テクニック
- GEMINI.mdによるプロジェクト固有のカスタマイズ方法
- SES現場での実践的な活用パターンと導入効果
Gemini CLIコード補完の仕組み
アーキテクチャ概要
Gemini CLIのコード補完は、単なるテキスト予測ではなくプロジェクト全体のコンテキストを理解した上での提案を行います。その仕組みを理解することが、効果的な活用の第一歩です。
【Gemini CLIの補完フロー】
┌──────────────────────────────────────────┐
│ 1. プロジェクト構造の解析 │
│ └── ファイルツリー・依存関係の把握 │
│ │
│ 2. コンテキスト収集 │
│ ├── 現在のファイル内容 │
│ ├── 関連ファイル(import先等) │
│ ├── GEMINI.md(プロジェクト設定) │
│ └── Git履歴・最近の変更 │
│ │
│ 3. Gemini 2.5 Pro による推論 │
│ └── 100万トークンコンテキストで分析 │
│ │
│ 4. コード提案・補完結果の出力 │
│ ├── 単一行補完 │
│ ├── 複数行ブロック補完 │
│ └── マルチファイル修正提案 │
└──────────────────────────────────────────┘
Gemini 2.5 Proの100万トークンコンテキスト
Gemini CLIの最大の武器は、Gemini 2.5 Proの100万トークン(約75万語)のコンテキストウィンドウです。これにより以下のことが可能になります。
| 対応規模 | トークン数目安 | 具体的な使い方 |
|---|---|---|
| 小規模プロジェクト | 〜50Kトークン | プロジェクト全体を一度に把握 |
| 中規模プロジェクト | 50K〜200K | 主要モジュールを横断的に分析 |
| 大規模プロジェクト | 200K〜1M | アーキテクチャ全体を理解した提案 |
# プロジェクト全体を読み込んでの補完例
gemini "このプロジェクトの全ソースコードを読み込んで、
src/services/notificationService.ts に
プッシュ通知送信機能を追加してください。
既存のメール通知と同じパターンで実装してください。"

基本的なコード補完テクニック
関数・メソッドの自動生成
# インターフェースから実装を生成
gemini "src/types/payment.ts のPaymentProcessorインターフェースを読んで、
src/services/stripePaymentProcessor.ts に
Stripe SDKを使った実装を生成してください。
エラーハンドリングとリトライロジックを含めてください。"
Gemini CLIはインターフェース定義を読み取り、既存の実装パターンを参考にしながら新しい実装を生成します。
コンテキスト認識型の補完
従来のコード補完ツールと異なり、Gemini CLIはプロジェクトの設計思想を理解した補完を行います。
# 既存パターンを踏襲した新機能追加
gemini "src/controllers/ ディレクトリの既存コントローラーの
パターンを分析して、同じ構造・エラーハンドリング・
レスポンスフォーマットで新しいProductControllerを生成してください。
CRUDの全メソッドと、検索・ページネーション機能も含めてください。"
この場合、Gemini CLIは以下を自動的に認識して反映します。
- エラーハンドリングパターン: try-catchの構造、カスタムエラークラスの使用
- レスポンスフォーマット: 統一的なJSON構造(status, data, error等)
- 認証・認可: ミドルウェアの適用パターン
- バリデーション: 入力検証の方法とライブラリ
- ログ出力: ロギングの粒度とフォーマット
型推論を活用した補完
TypeScriptプロジェクトでは、Gemini CLIの型推論能力が特に威力を発揮します。
gemini "以下のジェネリック型を使ったユーティリティ関数を実装してください:
type ApiResponse<T> = {
success: boolean;
data: T | null;
error: string | null;
pagination?: {
page: number;
perPage: number;
total: number;
};
};
以下の関数を型安全に実装:
1. createSuccessResponse<T>(data: T): ApiResponse<T>
2. createErrorResponse(error: string): ApiResponse<never>
3. createPaginatedResponse<T>(data: T[], pagination: PaginationParams): ApiResponse<T[]>
4. isSuccessResponse<T>(response: ApiResponse<T>): response is SuccessResponse<T>"
高度な補完テクニック
マルチファイル一括修正
Gemini CLIの真の強みは、複数ファイルを横断した一括修正提案です。
# API仕様変更に伴うマルチファイル修正
gemini "ユーザーAPIのレスポンス形式を変更します。
変更前: { name: string, email: string }
変更後: { profile: { displayName: string, email: string, avatar: string } }
この変更が影響する全ファイルを特定し、
コントローラー・サービス・テスト・型定義をすべて修正してください。
変更差分をファイルごとに表示してください。"
テスト駆動補完(TDC)
テストを先に書き、そのテストが通る実装をGemini CLIに生成させるアプローチです。
# テストファイルを指定して実装を生成
gemini "tests/services/cacheService.test.ts のテストをすべて読んで、
これらのテストがすべてパスする
src/services/cacheService.ts を実装してください。
Redis接続にはioredisを使用してください。"
パフォーマンス最適化提案
# 既存コードの最適化提案
gemini "src/services/reportService.ts を分析して、
パフォーマンス改善できるポイントを特定してください。
【分析観点】
- N+1クエリの検出
- 不要なメモリ消費
- 並列化可能な処理
- キャッシュ可能なデータ
- インデックス活用の提案
改善前後のコードを比較形式で出力してください。"
GEMINI.mdによるカスタマイズ
基本設定
GEMINI.mdファイルを使うことで、プロジェクト固有の規約や制約を補完に反映できます。
# GEMINI.md
## プロジェクト概要
SaaS型の在庫管理システム。マイクロサービスアーキテクチャ。
## 技術スタック
- TypeScript 5.4 (strict mode)
- NestJS 10
- Prisma ORM
- PostgreSQL 16
- Redis (キャッシュ)
- Jest (テスト)
## コーディング規約
- 関数は50行以内に収める
- 副作用のある処理はサービスレイヤーに集約
- DTOパターンでリクエスト/レスポンスを型定義
- エラーはNestJSのHttpExceptionを使用
- 日本語コメントは禁止(英語のみ)
## ディレクトリ構成
- src/modules/{feature}/
- controller.ts
- service.ts
- module.ts
- dto/
- entities/
- tests/
## 禁止事項
- anyの使用禁止
- console.logの使用禁止(Loggerを使用)
- 同期的なファイルI/O禁止
チーム共有設定
GEMINI.mdはGitリポジトリに含めてチーム全体で共有するのが推奨です。これにより、チーム全員が同じ品質基準でコード補完を受けることができます。
言語別の補完テクニック
Python プロジェクト
gemini "FastAPIプロジェクトの以下のエンドポイントを実装:
@router.post('/users/', response_model=UserResponse)
async def create_user(request: UserCreateRequest, db: AsyncSession = Depends(get_db)):
# この実装を生成
【要件】
- Pydantic v2のモデルバリデーション
- SQLAlchemyの非同期クエリ
- メールアドレスの重複チェック
- パスワードのbcryptハッシュ化
- 作成イベントの発行"
Go プロジェクト
gemini "以下のGoインターフェースの実装を生成:
type UserRepository interface {
Create(ctx context.Context, user *User) error
FindByID(ctx context.Context, id string) (*User, error)
FindByEmail(ctx context.Context, email string) (*User, error)
Update(ctx context.Context, user *User) error
Delete(ctx context.Context, id string) error
List(ctx context.Context, opts ListOptions) ([]*User, int64, error)
}
PostgreSQL + pgxドライバーを使用。
コンテキストのタイムアウト処理、
エラーラッピング(fmt.Errorf with %w)、
トランザクション対応を含めてください。"
Java/Spring Boot プロジェクト
gemini "Spring Boot 3のRestControllerを実装:
- @RestController + @RequestMapping(\"/api/v1/orders\")
- 全メソッドに@Transactional
- Spring Securityの@PreAuthorize
- Pageableによるページネーション
- Spring Validationによる入力チェック
- GlobalExceptionHandlerとの連携
- OpenAPI 3.0アノテーション付き"
IDE連携とワークフロー
VS Code + ターミナル分割
Gemini CLIはターミナルベースのツールですが、VS Codeのターミナル分割機能と組み合わせることで、IDE内で補完とコーディングを同時に行う効率的なワークフローが構築できます。
【推奨レイアウト】
┌──────────────────────┬─────────────────────┐
│ │ │
│ VS Code │ Gemini CLI │
│ エディタ │ ターミナル │
│ │ │
│ コード編集 │ 補完リクエスト │
│ │ 結果確認 │
│ │ 適用操作 │
├──────────────────────┴─────────────────────┤
│ テスト結果 / Git │
└────────────────────────────────────────────┘
Git ワークフローとの統合
# コミット前の品質チェック
gemini "git diffの内容を確認して、以下をチェック:
1. 型安全性の確認
2. エラーハンドリングの漏れ
3. テストの追加が必要な箇所
4. パフォーマンス上の懸念
問題があればコード提案を出力"
# コミットメッセージの自動生成
gemini "git diffの内容からConventional Commits形式の
コミットメッセージを生成してください"
SES現場での活用パターン
新規参画時の高速キャッチアップ
SESエンジニアが新しいプロジェクトに参画した際、コードベースの理解には通常1-2週間かかります。Gemini CLIを使えば、このキャッチアップ期間を大幅に短縮できます。
# プロジェクト構造の理解
gemini "このプロジェクトの全体構造を分析して、
以下の観点でまとめてください:
1. アーキテクチャパターン
2. 主要モジュールの責務
3. データフロー
4. 外部サービス連携
5. テスト戦略
6. デプロイメントフロー"
# 特定機能の理解
gemini "ユーザー認証の処理フローを、
関連するすべてのファイルを追って説明してください。
シーケンス図形式で出力してください。"
レガシーコード対応
SES案件ではレガシーコードの保守・改修が多くを占めます。Gemini CLIの大規模コンテキスト能力は、レガシーコードの理解と安全な修正に最適です。
gemini "src/legacy/ 配下のコードを分析して:
1. 現在の設計上の問題点
2. セキュリティリスク
3. パフォーマンスボトルネック
4. 段階的リファクタリング計画
を提案してください。既存のテストを壊さない
安全な改修手順を示してください。"
コードレビュー支援
# PR差分のレビュー
gemini "以下のPR差分をレビューしてください:
$(git diff main...feature/user-auth)
【レビュー観点】
- バグの可能性
- セキュリティ脆弱性
- コーディング規約違反
- テスト不足
- パフォーマンスの懸念
重要度(Critical/Warning/Info)付きで出力"
パフォーマンス最適化設定
レスポンス速度の向上
# 高速モードの活用
gemini --model gemini-2.0-flash "簡単な補完タスクの場合は
Flashモデルで高速に処理"
# 対話的な補完セッション
gemini "このセッションではsrc/services/を
集中的に作業します。関連ファイルを読み込んでおいてください。"
コスト最適化
Gemini CLIはGoogle AI Studio経由で無料枠が提供されていますが、大規模な利用時はコスト管理が重要です。
【コスト最適化の指針】
- 簡単なタスク → gemini-2.0-flash(低コスト・高速)
- 複雑なタスク → gemini-2.5-pro(高精度・時間がかかる)
- 大量一括処理 → バッチAPIの活用
- コンテキスト → 必要最小限のファイルを指定
競合ツールとの比較
| 機能 | Gemini CLI | GitHub Copilot | Claude Code | Cursor |
|---|---|---|---|---|
| コンテキスト | 1Mトークン | 8K | 200K | 128K |
| マルチファイル補完 | ◎ | △ | ◎ | ○ |
| カスタマイズ | GEMINI.md | .github/copilot | CLAUDE.md | Rules |
| 言語対応 | 全言語 | 全言語 | 全言語 | 全言語 |
| 月額コスト | 無料〜 | $19 | $20〜 | $20 |
| 動作環境 | CLI | エディタ | CLI | エディタ |
| オフライン | ✗ | ✗ | ✗ | ✗ |
Gemini CLIの最大の差別化要因はコンテキストウィンドウの広さとコストパフォーマンスです。Google AI Studioの無料枠を活用すれば、コストゼロで高品質なコード補完を利用できます。
まとめ
Gemini CLIのコード補完・提案機能は、100万トークンのコンテキストウィンドウを最大の武器に、大規模プロジェクトでの開発効率を大幅に向上させます。
| 活用シーン | 効果 |
|---|---|
| 新規コード生成 | 実装時間50%短縮 |
| レガシーコード理解 | キャッチアップ期間70%短縮 |
| コードレビュー | レビュー工数40%削減 |
| テスト生成 | テスト作成時間60%削減 |
SES現場では、参画直後のキャッチアップとレガシーコード対応で特に高い効果を発揮します。GEMINI.mdの整備とモデルの使い分けを適切に行うことで、最大限の補完品質を引き出しましょう。