26 ポイント 投稿者 GN⁺ 2025-11-28 | 1件のコメント | WhatsAppで共有
  • 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が呼び出し可能
    • 例: convertdockerffmpeggit など
  • 環境に応じてPATH制限またはホワイトリスト設定を推奨

Tip 18 — マルチモーダル入力の活用

  • 画像・PDF・音声ファイルを @ で添付して分析可能
    • 例: UIスクリーンショットの説明、エラー画像の分析、OCR処理
  • 視覚資料ベースのコード生成・データ抽出をサポート

Tip 19 — $PATH とツールアクセス制御

  • 制限されたPATHで実行して安定性とセキュリティを強化
  • settings.jsonexcludeTools で危険なコマンドをブロック可能
  • --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件のコメント

 
GN⁺ 2025-11-28
Hacker Newsの意見
  • 自分はこういう設定をまったくしていない
    理由は、すぐに時代遅れになり、8割はまともに動かないから
    LLMが確実に呼び出してくれるかも分からない状況で、わざわざMCPサーバーを書く必要はないと思う
    自分のルールは単純で、自分のための**ドキュメント化(テンプレート、チェックリストなど)**を自分で作り、AIに一度試させる
    一発でうまくいかなければドキュメントを修正するか、普通に自分でやる

    • LLMを統計的ドキュメント生成器として見る視点が役に立った
      結局のところ有用性は学習データとモデルの進化に左右されるし、形式文法のない制約プログラミングのように扱うのが適切だと思う
      自然言語の主観性を考えると、制約文を反復的に磨いていく高速なイテレーションが最善
      例として、Geminiを4回反復して完全自動で動くbashスクリプトを得たことがある
      関連概念はConstraint programmingを参照
    • 最近のエージェントはビルド・テスト・修正サイクルを自力で回せるようになってきていて、とても助かっている
      ジュニア開発者レベルの作業を任せて、自分は別の仕事ができるようになった
    • AIエージェントをチームの新人開発者のように扱うアプローチが効果的
      一度失敗したらドキュメント(.mdファイル)を改善して再挑戦させる
      MCPはセキュリティリスクのためあまり使わないが、この反復ループはかなり効率的
      逆に「一度でできなければ自分でやる」というのは、新人をその場で解雇するようなものだ
    • 今はソフトウェア開発が新たな**プラトー(plateau)**へ向かっている途中だと感じる
      まだその地点には達しておらず、今積み上げている技術は斜面の上に建てているようなもの
    • 自分は両方のアプローチに価値があると思う
      1. 新しいセッションで始めてコンテキスト汚染を避け、
      2. さまざまなツールをつないで作業を楽にする(Anthropicの最近の記事参照)
        現在のプロンプト評価手法は信頼できないので、それを改善するエージェント的な設定を自作している
        昨日はDaggerベースのセッションタイムトラベル機能を追加し、今日はフォーク・クローン・レジストリ機能を入れる予定
  • Gemini CLIはまだ複雑なコーディング作業には弱い
    単純なReActループと弱いツール呼び出し能力のせい
    それでもオープンソースとして活発に開発中なので潜在力は大きい
    1Mのコンテキストウィンドウ(まもなく2M予定)と十分な無料クォータがあるので、「使い倒すべき(ABUSE IT)」だと思う
    自分はこれをTUI/CLIオーケストレーションツールとして使っており、他のツールが生成したコードを評価するのにもかなり役立った
    最近はHomebrewとMCPをつなぎ、ローカルLLMベースのKnowledge Manager(Nowledge Mem)とも連携している
    面白いことに、Gemini CLIをSubAgentとして使ってメインのコンテキスト汚染を避けた例も見た
    関連ツイート

    • Gemini CLIは本当に野生の獣みたいだ
      「コードは修正せず提案だけして」と言っても、すぐファイルを変更してしまう
      Pro 3は賢いが、指示追従はまだ不安定
    • Gemini 3 Proを軽く試したが、基本的なコーディング作業すら苦手だった
      Antigravity経由で試したが、クォータ制限のため複雑なテストは難しかった
      詳しい印象はこの記事を参照
  • Addy OsmaniはGoogle ChromeとGeminiを担当するアイルランド出身のソフトウェアエンジニアで、25年の経験を持つベテラン
    Webパフォーマンス改善とAI支援開発ツールに情熱を持ち、『Learning JavaScript Design Patterns』など複数の著書がある

    • Patrick Collisonより2年早くIrish Young Scientist大会で受賞した経歴がある
      大会リンク
    • Webパフォーマンスのコミュニティで非常に高い評価を得ている
    • 最近5年間で11冊の本を出したらしいが、AI支援執筆を使っているのか気になる
  • 自分はLLM非依存(agnostic)なコーディングエージェントが標準になることを望んでいる
    CodexやGemini CLIのようにそれぞれが車輪の再発明をするのではなく、LLMプロバイダを
    プラグイン形式で差し替え
    られるとよい
    今のところClaude Codeが最高だが、Anthropicはその方向には進まなさそう
    結局、次世代のオープンソースコーディングエージェントを待つしかなさそうだ

    • すでにそういうツールとしてAider(aider.chat)がある
      ただ、こうしたCLIは実際のツールというよりサブスクリプションモデルのためのインターフェースに近い
      最新モデルはトークン消費が大きすぎるので、API課金より月額課金のほうが現実的
    • Opencode(SST製)はそのビジョンをうまく実装した例だ
      ここ数日使ってみたが、かなり満足している
      GitHubリンク
      Crush、Aider、Amp Code、Emacs+gptel、Editor Code Assistantなど、さまざまな代替も存在する
      ただしLLMとコーディングエージェントの**共進化(co-design)**が重要なので、完全な分離はまだ非現実的
    • 自分はClaude Codeが最高な理由は、まさに非依存ではないからだと思う
    • Cursorも良い代替
      皮肉なことに、いまや独自LLMも導入している
      Cursor Composer紹介
    • モデル非依存ツールとしてはRoo Codeや、そのフォークであるKiloを勧める
  • 自分は数か月前からGemini CLIを使っている
    会社で無料サブスクリプションがあるので使い続けている
    GEMINI.mdファイルを認識すると言われているが、実際には無視されることが多い
    それでもTip 12やTip 16のようなコツは役に立った
    AIのハルシネーション(hallucination)問題は相変わらずだが、初めてAIを本当に「楽しい」と感じさせてくれた体験だった
    特にK8s PoCクラスターを
    自律的にデバッグ
    させたとき、ログを取ってきてエラーを見つける過程には本当に驚かされた
    ときどきあまりに間抜けな振る舞いをしたら/quitして自分でやるが、それでも楽しく使っている

    • Gemini CLIがK8sクラスターをリアルタイムでデバッグするなんて、本当に超現実的
      自分もRKE2クラスターをちょうど作ったところなので、ぜひ試してみたい
  • 自分はAIがとても好きだ
    インターネットやiPhoneのように、自分をより効率的な人間にしてくれる必須ツールだと感じる
    ただし「AIの使い方」を教えるチュートリアル疲れがひどい
    ほとんどは質が低く、今回の記事はまだマシなほう
    まるでJS開発者が毎週新しいフレームワークを紹介しているような感じだ

    • 最近の「LLMはこう使え」系の記事は本当に退屈
      誰が書こうと、本気であれ単なるエンゲージメント狙いであれ、もう興味が持てない
  • 正直、こういう複雑な設定はやりすぎだ
    自分はただAIに怒鳴るレベルのプロンプトでも十分うまくいく
    LazyVimといくつかのツール(git、ask、ripgrep)だけでも十分に生産的
    とくにGemini 3はトークン密度が高く、コンテキストも大きいので非常に有用
    コンテキストが過剰になったらREADME.MDに要約を書かせて、新しいエージェントを始める
    askツールリンク

    • 自分も似たやり方で使っているが、Gemini 3が圧倒的によくできる
      他のモデルでは生産性が出なかったが、今では複雑な作業でも8割は一発で成功する
  • 手動スクリプティングとLLM支援ワークフローの対比が興味深い
    制約条件が明確でなければどちらも失敗するが、明確ならLLMは驚くほど信頼性高く動く

  • 最近のAI/Agentic/Vibeコーディングの問題は、進化の速度が速すぎることだ
    ベストプラクティスが定着する前に時代遅れになってしまう
    言語やフレームワークが変わっても、問題を分解しコードベースを理解するやり方は比較的安定していたのに、
    今はその均衡点がどこにあるのか分からない

  • 自分はGemini CLIはいまいちだと感じる
    使うならOpencodeを勧める
    GoogleもCodexのようにCLIを一から作り直すべき

    • 人それぞれだろうが、自分の場合Gemini CLIは速くて安定しているのでメインツールとして使っている
    • Opencodeも最近TUIを完全に置き換えた
      ちなみにGemini 3は現在Copilot経由ではOpencodeで動かない
      Issueリンク
    • Opencodeを使うには特定の**ターミナルエミュレーター(WezTerm、Alacritty、Ghostty、Kitty)**が必要だと書かれている
      単なるTUIにこうした制約が必要なのか疑問だった
      公式ドキュメントを見るとGeminiには直接触れられておらず、
      Google Vertex AI経由で提供されているようだ
      おそらくGoogle Workspaceサブスクリプション経由でGeminiを接続できるのかもしれない
    • Codexはどうなったのか気になる — 本当に作り直したのか?