Gemini CLIを活用したエージェンティックコーディングのヒントとテクニック
(github.com/addyosmani)- Gemini CLIは、GoogleのGeminiモデルをターミナルから直接活用できるオープンソースのAIアシスタントであり、自然言語の命令を通じてコード作成、デバッグ、自動化作業を実行する対話型コマンドラインツール
- 約30個の上級者向けヒントを通じて、継続的なコンテキスト管理(
GEMINI.md)、カスタムコマンド、MCPサーバー拡張、メモリ機能、チェックポイント復元などの高度な機能を扱う - ファイル・画像参照(
@)、YOLOモード(自動承認)、ヘッドレス実行、マルチディレクトリ作業、IDE統合(VS Code)など、開発ワークフロー最適化機能を提供 - GitHub Action、拡張機能(Extensions)、テレメトリー、トークンキャッシュなど、自動化・可観測性・拡張性を軸とした最新機能を含む
- Gemini CLIは単なるAIチャットではなく、開発環境全体を統合制御するエージェンティック開発プラットフォームへと進化中
Gemini CLI 概要
- Gemini CLIは、Google Geminiモデルをターミナルから直接利用できるAIベースのコマンドラインインターフェース
- Node.js/TypeScriptベースで、主要なすべてのOSで動作
- 自然言語で命令を入力すると、コード生成、デバッグ、システム設定などの多段階タスクを実行
- インストールは
npm install -g @google/gemini-cliまたはnpx @google/gemini-cliで可能 - 認証は**Googleアカウントでのログイン(無料)またはAPIキー(有料/エンタープライズ)**方式をサポート
- 無料アカウントは1分あたり約60回、1日1,000回のリクエストが可能
- APIキー使用時はデータ保護が強化され、ログ保持ポリシーが適用される
- 基本実行は
geminiコマンドで開始し、/コマンド(セッション制御)と!コマンド(シェル実行)をサポート- システム変更時にはユーザー承認(Y/n)を求めるセーフモードがデフォルトで有効
Tip 1 — GEMINI.md による継続的なコンテキスト管理
- プロジェクトごとの指示や背景情報を
GEMINI.mdファイルに保存して、AIが常に同じコンテキストで応答するようにする- 例: コーディングスタイル、アーキテクチャ、関数ルールなど
- グローバル(
~/.gemini/GEMINI.md)とプロジェクト別.gemini/GEMINI.mdを階層的にマージ /memory showで現在読み込まれているコンテキストを確認し、/memory refreshで更新/initコマンドで基本テンプレートを生成でき、@includeで複数ファイルの読み込みをサポート
Tip 2 — カスタムスラッシュコマンドの作成
- 繰り返し作業を自動化するカスタムコマンドをTOMLファイルで定義
- 例:
/test:gen→ 要件ベースのJestテストを生成
- 例:
- グローバル(
~/.gemini/commands/)またはプロジェクト別(.gemini/commands/)で登録可能 - コマンドはプロンプトテンプレートベースで動作し、チーム間で共有可能
- 一貫したフォーマットや役割指定(例:
/review:security)など、ワークフロー標準化に有用
Tip 3 — MCPサーバーでGeminiを拡張
- **Model Context Protocol(MCP)**サーバーを通じて外部システムと連携
- 例: Figma、Google Docs、Clipboard、社内DB など
gemini mcp addコマンドでサーバーを登録し、設定はsettings.jsonに保存/mcpコマンドで登録済みサーバーとツール一覧を確認- OAuth 2.0対応により安全なAPI接続が可能
Tip 4 — メモリの追加と呼び出し
/memory add "<text>"で重要な情報を長期メモリに保存- 例: 「RabbitMQのポートは5673」
/memory showで全メモリを確認し、/memory refreshで更新- 意思決定ログや個人設定(例: 話し方、名前など)の保存に有用
Tip 5 — チェックポイントと /restore 復元機能
- ファイル変更前に自動スナップショットを生成し、
/restoreで以前の状態へ戻せる --checkpointingオプションまたは設定ファイルで有効化/restore listでチェックポイント一覧を確認し、/restore <id>で復元- Gitと併用することで、AI作業のセーフティネットとして機能
Tip 6 — Google Docs・Sheets の読み取り
- Workspace MCPサーバーを設定すると、Google Docs/Sheets のリンクを直接読み取って要約可能
- OAuth認証が必要で、
/read_google_docなどのコマンドでアクセス - 文書・シート・Driveファイルをリンクで参照し、コピーせずにコンテキストを注入
Tip 7 — @ 構文でファイル・画像を参照
@ファイルパスでコード・文書・画像を直接プロンプトに添付- 例:
Explain this code: @./src/main.js
- 例:
.gitignoreおよび.geminiignoreルールを自動反映- 画像認識(OCR含む)や複数ファイル比較をサポート
Tip 8 — 即席ツールの生成
- Geminiが必要に応じて一時スクリプトやMCPサーバーを直接生成
- 例: JSONパーサー、ログアナライザーなど
- 生成されたコードはdiffでレビューしてから承認可能
- 便利なスクリプトはカスタムコマンドへ昇格可能
Tip 9 — システム問題の解決と設定
- プロジェクト外でも利用でき、開発環境管理アシスタントとして機能
- 例:
.bashrcの修正、エラーログ分析、Dockerインストールの自動化
- 例:
- コマンド実行前に常に承認を求め、安全なシステム調整を支援
Tip 10 — YOLOモード(自動承認)
--yoloまたはCtrl+Yですべてのツール実行を自動承認- 反復作業の高速化に有用だが、リスクもある
- 特定コマンドのみ自動承認するホワイトリスト設定も可能
Tip 11 — ヘッドレスおよびスクリプトモード
gemini -p "prompt"で非対話実行GEMINI_SYSTEM_MDでシステムプロンプトを置き換え可能- JSON出力(
--format=json)およびセッション要約ファイル(--session-summary)をサポート - CI/CD や自動化スクリプト統合に適している
Tip 12 — チャットセッションの保存と再開
/chat save <name>でセッションを保存し、/chat resume <name>で復元/chat listで一覧確認、/chat shareで共有可能- 長時間のデバッグや複数プロジェクト並行時に有用
Tip 13 — マルチディレクトリワークスペース
--include-directoriesまたは設定ファイルで複数フォルダを1つの作業空間に統合/directory showで現在含まれているフォルダを確認- フロントエンド・バックエンド同時修正など、ポリレポ環境をサポート
Tip 14 — AIによるファイル整理
- ディレクトリ内のファイルを種類別に分類・移動
- 例: 画像→Images、PDF→Documents
- 画像内容に基づく自動リネームも可能
- 実行前にはコマンドプレビューで安全確認を推奨
Tip 15 — 会話の圧縮によるコンテキスト維持
/compressコマンドで長い会話を要約し、コンテキスト領域を確保- 重要情報だけを保持しながらセッションを継続可能
- 自動圧縮しきい値の設定も可能
Tip 16 — ! でシェルコマンドを実行
!commandでターミナルコマンドを直接実行!だけを入力するとシェルモードに入り、再度!で終了- AIとの対話とシステムコマンドを1つのインターフェースに統合
Tip 17 — すべてのCLIツールをGeminiツールとして活用
$PATH内のすべてのコマンドをAIが呼び出し可能- 例:
convert、docker、ffmpeg、gitなど
- 例:
- 環境に応じてPATH制限またはホワイトリスト設定を推奨
Tip 18 — マルチモーダル入力の活用
- 画像・PDF・音声ファイルを
@で添付して分析可能- 例: UIスクリーンショットの説明、エラー画像の分析、OCR処理
- 視覚資料ベースのコード生成・データ抽出をサポート
Tip 19 — $PATH とツールアクセス制御
- 制限されたPATHで実行して安定性とセキュリティを強化
settings.jsonのexcludeToolsで危険なコマンドをブロック可能--sandboxオプションでDocker隔離環境での実行をサポート
Tip 20 — トークンキャッシュと使用量追跡
- APIキーまたはVertex認証時にトークン再利用でコストを削減
/statsコマンドでキャッシュヒット率とトークン使用量を確認--session-summaryでセッションごとのJSONレポート保存が可能
Tip 21 — /copy でクリップボードにコピー
- 最後の出力(コードなど)を即座にクリップボードへコピー
- macOS(
pbcopy)、Windows(clip)、Linux(xclip)をサポート
Tip 22 — Ctrl+C ショートカット制御
- 1回押すと作業を中断、2回押すとCLIを終了
- シェルモードでは
Ctrl+CまたはEscで抜けられる
Tip 23 — settings.json によるユーザー設定
- テーマ、サンドボックス、自動承認、Vimモードなどの詳細設定が可能
/settingsコマンドでインタラクティブ編集をサポート- グローバル(
~/.gemini/)とプロジェクト別設定をマージ
Tip 24 — VS Code 統合
- VS Code拡張機能(Companion Extension)により、ファイル・カーソル・選択範囲を自動認識
- コード変更提案時には VS Code のdiffビューアを自動表示
/ide install、/ide enable、/ide statusで管理
Tip 25 — GitHub Action 自動化
- Gemini CLI GitHub Action により、Issue分類やPRレビューを自動化
@gemini-cliメンションでテストコード生成などを依頼可能/setup-githubコマンドでワークフローファイルを自動生成
Tip 26 — テレメトリー(Observability)
- OpenTelemetryベースでセッションメトリクス・ログ・トレースを収集
"telemetry.enabled": true設定または--telemetryフラグで有効化- ローカルファイル、GCP、Prometheus など多様なバックエンドへ送信可能
Tip 27 — ロードマップのモニタリング
- GitHub公開のGemini CLI ロードマップで今後の機能を確認
- 例: バックグラウンドエージェント、モデル拡張、UI改善 など
- コミュニティフィードバックや機能提案にも参加可能
Tip 28 — 拡張機能(Extensions)
gemini extensions install <URL>で外部サービス統合- 例: Cloud Run、BigQuery、Figma、Stripe など
- 拡張機能はMCPツール・コマンド・コンテキストを追加するモジュール構造
/extensionsコマンドで有効な拡張機能一覧を確認
追加機能 — Corgi Mode 🐕
/corgiコマンドでターミナルにコーギーのアニメーションを表示- 単なるイースターエッグ機能として、CLI利用中の息抜きを提供
結論
- Gemini CLIは、コード作成からシステム管理、自動化、コラボレーションまでを網羅するAIベースの開発インターフェース
GEMINI.md、MCP、拡張機能、IDE連携などにより、継続的なコンテキストとツール拡張性を確保- オープンソースエコシステムと迅速なアップデートを通じて、開発者ワークフローの中心となるAIプラットフォームへと発展中
1件のコメント
Hacker Newsの意見
自分はこういう設定をまったくしていない
理由は、すぐに時代遅れになり、8割はまともに動かないから
LLMが確実に呼び出してくれるかも分からない状況で、わざわざMCPサーバーを書く必要はないと思う
自分のルールは単純で、自分のための**ドキュメント化(テンプレート、チェックリストなど)**を自分で作り、AIに一度試させる
一発でうまくいかなければドキュメントを修正するか、普通に自分でやる
結局のところ有用性は学習データとモデルの進化に左右されるし、形式文法のない制約プログラミングのように扱うのが適切だと思う
自然言語の主観性を考えると、制約文を反復的に磨いていく高速なイテレーションが最善
例として、Geminiを4回反復して完全自動で動くbashスクリプトを得たことがある
関連概念はConstraint programmingを参照
ジュニア開発者レベルの作業を任せて、自分は別の仕事ができるようになった
一度失敗したらドキュメント(
.mdファイル)を改善して再挑戦させるMCPはセキュリティリスクのためあまり使わないが、この反復ループはかなり効率的
逆に「一度でできなければ自分でやる」というのは、新人をその場で解雇するようなものだ
まだその地点には達しておらず、今積み上げている技術は斜面の上に建てているようなもの
現在のプロンプト評価手法は信頼できないので、それを改善するエージェント的な設定を自作している
昨日はDaggerベースのセッションタイムトラベル機能を追加し、今日はフォーク・クローン・レジストリ機能を入れる予定
Gemini CLIはまだ複雑なコーディング作業には弱い
単純なReActループと弱いツール呼び出し能力のせい
それでもオープンソースとして活発に開発中なので潜在力は大きい
1Mのコンテキストウィンドウ(まもなく2M予定)と十分な無料クォータがあるので、「使い倒すべき(ABUSE IT)」だと思う
自分はこれをTUI/CLIオーケストレーションツールとして使っており、他のツールが生成したコードを評価するのにもかなり役立った
最近はHomebrewとMCPをつなぎ、ローカルLLMベースのKnowledge Manager(Nowledge Mem)とも連携している
面白いことに、Gemini CLIをSubAgentとして使ってメインのコンテキスト汚染を避けた例も見た
関連ツイート
「コードは修正せず提案だけして」と言っても、すぐファイルを変更してしまう
Pro 3は賢いが、指示追従はまだ不安定
Antigravity経由で試したが、クォータ制限のため複雑なテストは難しかった
詳しい印象はこの記事を参照
Addy OsmaniはGoogle ChromeとGeminiを担当するアイルランド出身のソフトウェアエンジニアで、25年の経験を持つベテラン
Webパフォーマンス改善とAI支援開発ツールに情熱を持ち、『Learning JavaScript Design Patterns』など複数の著書がある
大会リンク
自分はLLM非依存(agnostic)なコーディングエージェントが標準になることを望んでいる
CodexやGemini CLIのようにそれぞれが車輪の再発明をするのではなく、LLMプロバイダをプラグイン形式で差し替えられるとよい
今のところClaude Codeが最高だが、Anthropicはその方向には進まなさそう
結局、次世代のオープンソースコーディングエージェントを待つしかなさそうだ
ただ、こうしたCLIは実際のツールというよりサブスクリプションモデルのためのインターフェースに近い
最新モデルはトークン消費が大きすぎるので、API課金より月額課金のほうが現実的
ここ数日使ってみたが、かなり満足している
GitHubリンク
Crush、Aider、Amp Code、Emacs+gptel、Editor Code Assistantなど、さまざまな代替も存在する
ただしLLMとコーディングエージェントの**共進化(co-design)**が重要なので、完全な分離はまだ非現実的
皮肉なことに、いまや独自LLMも導入している
Cursor Composer紹介
自分は数か月前からGemini CLIを使っている
会社で無料サブスクリプションがあるので使い続けている
GEMINI.mdファイルを認識すると言われているが、実際には無視されることが多いそれでもTip 12やTip 16のようなコツは役に立った
AIのハルシネーション(hallucination)問題は相変わらずだが、初めてAIを本当に「楽しい」と感じさせてくれた体験だった
特にK8s PoCクラスターを自律的にデバッグさせたとき、ログを取ってきてエラーを見つける過程には本当に驚かされた
ときどきあまりに間抜けな振る舞いをしたら
/quitして自分でやるが、それでも楽しく使っている自分もRKE2クラスターをちょうど作ったところなので、ぜひ試してみたい
自分はAIがとても好きだ
インターネットやiPhoneのように、自分をより効率的な人間にしてくれる必須ツールだと感じる
ただし「AIの使い方」を教えるチュートリアル疲れがひどい
ほとんどは質が低く、今回の記事はまだマシなほう
まるでJS開発者が毎週新しいフレームワークを紹介しているような感じだ
誰が書こうと、本気であれ単なるエンゲージメント狙いであれ、もう興味が持てない
正直、こういう複雑な設定はやりすぎだ
自分はただAIに怒鳴るレベルのプロンプトでも十分うまくいく
LazyVimといくつかのツール(git、ask、ripgrep)だけでも十分に生産的
とくにGemini 3はトークン密度が高く、コンテキストも大きいので非常に有用
コンテキストが過剰になったらREADME.MDに要約を書かせて、新しいエージェントを始める
askツールリンク
他のモデルでは生産性が出なかったが、今では複雑な作業でも8割は一発で成功する
手動スクリプティングとLLM支援ワークフローの対比が興味深い
制約条件が明確でなければどちらも失敗するが、明確ならLLMは驚くほど信頼性高く動く
最近のAI/Agentic/Vibeコーディングの問題は、進化の速度が速すぎることだ
ベストプラクティスが定着する前に時代遅れになってしまう
言語やフレームワークが変わっても、問題を分解しコードベースを理解するやり方は比較的安定していたのに、
今はその均衡点がどこにあるのか分からない
自分はGemini CLIはいまいちだと感じる
使うならOpencodeを勧める
GoogleもCodexのようにCLIを一から作り直すべきだ
ちなみにGemini 3は現在Copilot経由ではOpencodeで動かない
Issueリンク
単なるTUIにこうした制約が必要なのか疑問だった
公式ドキュメントを見るとGeminiには直接触れられておらず、
Google Vertex AI経由で提供されているようだ
おそらくGoogle Workspaceサブスクリプション経由でGeminiを接続できるのかもしれない