Gemini CLI の紹介

に公開

1. Gemini CLI の概要

1-1. Gemini CLI とは

Gemini CLI は、その名のとおりターミナルから Gemini を呼び出すためのコマンドラインツールです。ブラウザやエディタの拡張を経由せず、ローカルのシェルスクリプトやビルドツールの中から直接 LLM を叩けるのが特徴です。

既存のワークフローに 組み込める のが便利です。

1-2. 簡単な使用例(インタラクティブ / ノンインタラクティブ)

インストール方法は割愛しますがリンクだけ置いておきます。
インストール方法

Gemini CLI には、ざっくり分けて次の 2 つの使い方があります。

  • インタラクティブモード: 対話しながらプロンプトを投げて試すモード
  • ノンインタラクティブモード: コマンド 1 回で「入力 → 出力」を完結させるモード

この記事では後ほどMakefileの中でノンインタラクティブに呼び出す話をしますが、まずはそれぞれのイメージを簡単な例で見ておきます。


インタラクティブモードの例

インタラクティブモードでは、gemini コマンドを実行したあと、対話形式でプロンプトを入力していきます。

gemini

この状態で、プロンプトを普通のチャットのように入力していきます。

  • ちょっとした質問を投げながら試したいとき
  • 会話としてプロンプトの調整をしながらなにかしらの結果を得たい時

などに向いています。


ノンインタラクティブモードの例

ノンインタラクティブモードでは、1 回のコマンド実行でプロンプトを渡し、標準出力に結果を受け取ります。

例えば、単純な質問であれば次のようにします。

gemini  "JUnit5 のテストコードを書くときの基本的な注意点を 3 つ教えて"

パイプ (|) との連携

cat long_article.txt | gemini "この記事を3行で要約して"

ノンインタラクティブモードこそCLIを使う利点に関係しています。

2. Gemini CLI の利点

Gemini自体はブラウザからでももちろん使えますが「CLI であること」には以下のような利点があります。

  • ワークフローへの組み込みが簡単
    • Makefile, シェルスクリプト, Gradle, npm script などからそのまま呼べる
  • 再現性のあるコマンド/プロンプトを共有しやすい
    • 「このスクリプトを実行すると、このプロンプトで生成する」がチームで揃えやすい
  • エディタや GUI に依存しない
    • CI には載せないまでも、ローカルの自動生成タスクとしては十分実用的

ワークフローに組み込めるということは以下の利点があります

  • 例えばMakefileで定義しておくことで、プロンプトの細かい調整などを各メンバーに意識させることなく、AIを活用したタスクをチームの誰もが同じ品質で実行できるようになる
  • プロンプト自体をGit管理できるようになる

3. Makefile での定義例

例を 2 つ紹介します。

3-1. コードの説明をワンコマンドで生成する

explain:
	@if [ -z "$(file)" ]; then \
	  echo "file が指定されていません。例: make explain file=src/main/java/com/example/Sample.java"; \
	  exit 1; \
	fi
	@echo "--- ファイル [$(file)] の内容を説明します ---"
	@cat "$(file)" | gemini "以下のコードについて、主要な役割、ロジック、注意点を日本語で分かりやすく解説してください。"

3-2. 差分からコミットメッセージ案を出してもらう

commit-msg:
	@echo "--- コミットメッセージを生成します ---"
	@git diff | gemini "日本語でお願いします。以下のgitの差分に基づき、コミットメッセージを作成してください。"

4.余談

本当はGitHub Actionsなどに組み込めると真価が発揮するのかなと思います。
自分の書いた上記の例はIDEで使ってるAIエージェントなどにチャットを投げたり、カスタムコマンドでももちろんできることなので。

1つの例ですが次のステップとして
・プルリクエストマージのタイミングでBacklog mcpサーバーを使ってBacklog上の課題の更新などを行う
といったことを考えています。
実際に運用に組み込めた際にはまた記事にします。

BABY JOB  テックブログ

Discussion