ターミナルでの作業を中断させないコマンドラインAI『geminicli』を徹底解説。コード生成、デバッグ、コマンド補助、画像分析まで。パイプ(|)やチャットモードで開発ワークフローを革命し、コンテキストスイッチから解放されてください。
私たち技術者にとって、ターミナルは単なるツールではありません。それは思考を紡ぎ、創造性を形にするための「仕事場」であり、いわば拡張された脳の一部です。
ls
で状況を確認し、cd
で思考の場所を移し、grep
で記憶の糸をたぐり寄せ、git
で歴史を刻む。この一連のコマンドは、もはや呼吸をするのと同じくらい自然な行為です。
と言うふうに書くと、なんともわざとらしいですが、技術者の多くはそれぐらいターミナル使ってます。
時折、そんなスムーズな思考の流れが、ふとした瞬間に中断されることはありませんか?
tar
コマンドの圧縮オプションってczf
だっけ?xzf
だっけ?」この僅かな「コンテキストスイッチ」が、私たちの集中力を削ぎ、生産性を静かに蝕んでいくのです。
もし、このターミナルから一歩も出ることなく、すぐ隣にいる同僚に尋ねるように、AIの巨大な知性を借りられたとしたら?
そんな、すべてのターミナルワーカーが一度は夢見たであろう未来を実現するツールが登場しました。それが、今回ご紹介するGoogle製のコマンドラインツール、geminicli
です。
geminicli
とは何か?コマンドラインに常駐するAIアシスタントgeminicli
は、Googleの高性能AIモデル「Gemini」の能力を、コマンドラインインターフェース(CLI)から直接、かつ手軽に利用できるようにしたツールです。
Go言語で書かれた単一の実行ファイルとして提供されており、複雑な依存関係もなく、驚くほど簡単に導入できます。
このツールが提供するのは、非常にシンプルな体験です。
$ geminicli "あなたの質問や指示"
自然言語で質問や指示を投げかければ、AIが即座にテキストで応答を返してくれます。その用途は無限大です。
あなたのターミナルに、博識で24時間365日対応してくれる超優秀なアシスタントが常駐する。それがgeminicli
なのです。
geminicli
は「新体験」なのか?GUIのAIツールとの決定的な違い「AIとチャットするだけなら、ブラウザでChatGPTやGeminiの公式サイトを使えばいいのでは?」
そう思われるかもしれません。もちろん、それらのGUIツールも非常に優れています。しかし、geminicli
には、私たちターミナルワーカーにとって、それらとは一線を画す決定的な利点が存在します。
最大のメリットは、ワークフローを一切中断しないことです。エラーが出たら、そのメッセージをマウスでコピーし、ブラウザにペーストし、答えを待つ…という一連の動作はもう必要ありません。エラーメッセージをターミナル上でコピーし、そのままgeminicli
に渡すだけ。答えは、同じターミナル画面上に表示されます。この「思考の流れが途切れない」という体験は、一度味わうと元には戻れないほどの快適さです。
|
)が拓く無限の可能性geminicli
の真価は、Unixの偉大な発明である「パイプライン (|
)」と組み合わせることで発揮されます。「小さなツールを組み合わせて、大きな問題を解決する」というUnix哲学を、AIの世界に持ち込むことができるのです。
geminicli
は標準入力を受け付けるため、他のコマンドの出力を直接AIに渡せます。
# ファイルの内容をAIに渡して要約させる
$ cat report.txt | geminicli "この文章を3行で要約して"
# gitの差分をAIに渡してレビューさせる
$ git diff | geminicli "このコード変更の改善点を提案してください"
# ログファイルからエラーの原因を推測させる
$ tail -n 50 /var/log/app.log | geminicli "このログからエラーの原因を推測して"
この連携能力こそが、geminicli
を単なる「CLI版ChatGPT」ではない、全く新しいツールへと昇華させているのです。
geminicli
は、ls
やgrep
と同じ、ただのコマンドです。つまり、シェルスクリプトに自由に組み込むことができます。これにより、これまで手動で行っていた知的作業の自動化に道が開かれます。
geminicli
に渡し、原因の要約と解決策のヒントをSlackに自動通知する。pre-commit
フックを使い、git diff
の結果からコミットメッセージの草案を自動生成する。geminicli
で要約し、整形して日次レポートを自動生成する。AIをあなたのワークフローに組み込み、創造的なタスクに集中するための強力な武器となります。
geminicli
の力を解放する!知っておくべき必須機能geminicli
はシンプルなだけでなく、驚くほど多機能です。ここでは、そのポテンシャルを最大限に引き出すための必須機能を紹介します。
-chat
)一度の質問で終わらせたくない、AIと対話しながら思考を深めたい時がありますよね。そんな時は-chat
フラグを使います。
$ geminicli -chat
> GoでHTTPサーバーを立てるコードを書いて
(AIがコードを生成)
> ありがとう。次に、これにロギング機能を追加して
(AIがロギング機能を追加したコードを生成)
> exit
このように、前の文脈を記憶したまま会話を続けられるため、複雑なデバッグや段階的なコーディングに絶大な威力を発揮します。
-img
)geminicli
はテキストだけでなく画像も理解します。Webサイトのスクリーンショットを撮って「このUIをHTMLとTailwind CSSで再現して」と頼んだり、エラー画面のキャプチャを渡して「このエラーの原因は何?」と聞いたりできます。
# エラー画面のスクリーンショットを分析させる
$ geminicli -img error_screenshot.png "このエラーメッセージの原因と解決策を教えて"
# ホワイトボードに書いた図をコード化させる
$ geminicli -img architecture_diagram.jpg "この図をTerraformのコードにしてください"
ターミナル上で画像分析まで完結するのは、まさに未来の体験です。
@
)パイプ以外にも、プロンプトに直接ファイルの内容を埋め込む方法があります。プロンプト内で@
に続けてファイルパスを書くだけです。
$ geminicli "以下の2つのファイルを参考にして、main.goをリファクタリングして。参考ファイル1: @utils.go 参考ファイル2: @types.go"
複数のファイルをコンテキストとしてAIに渡したい場合に非常に便利です。
-m
)geminicli
は、Googleが提供する様々なGeminiモデルを利用できます。デフォルトはgemini-1.0-pro
ですが、-m
フラグでより高性能な最新モデル(例:gemini-1.5-pro-latest
)を指定することも可能です。
$ geminicli -m gemini-1.5-pro-latest "10万行のログファイル @large_log.txt を読み込んで、エラーの傾向を分析して"
より長文のコンテキストや複雑なタスクには、最新モデルを試してみる価値があります。
これほど便利なツールとなると、気になるのが料金です。ご安心ください。賢く使えば、ほとんどの個人ユースケースでは無料で利用できます。
注: このセクションの料金情報は、2024年5月時点のGoogle AI公式料金ページに基づくものです。
geminicli
の公式サイトに記載されている情報ではなく、内容は将来変更される可能性があります。最新情報は必ずGoogle AIの公式料金ページでご確認ください。
geminicli
自体は無料。コストはバックエンドのAPI利用料まず理解しておくべきは、geminicli
というCLIツール自体はオープンソースであり、完全に無料だということです。コストが発生する可能性があるのは、geminicli
が内部で通信している「Google Gemini API」の利用料金です。
geminicli
が現在デフォルトで使用するモデルは「Gemini Pro」です。そして、このGemini Pro APIには、非常に**豊富な無料利用枠(Free Tier)**が設定されています。
1分間に60回までリクエストが無料です。これは個人がターミナルで対話的に利用する分には、まず上限に達することはないであろう、非常に寛大な設定です。コーディング中に少し質問したり、コマンドを生成したりする程度であれば、料金を心配する必要はほとんどありません。
「意図せず課金されてしまったらどうしよう…」と不安な方は、Google AI Studioでいつでも利用状況を確認できます。
これで安心してgeminicli
を使い始めることができますね。
geminicli
のインストールと“神”エイリアス設定さあ、理屈はもう十分です。実際にあなたのターミナルに、この新しい相棒を迎え入れましょう。インストールは数分で完了します。
geminicli
はGo言語で書かれているため、実行にはGoの環境が必要です。まず、インストールされているか確認しましょう。
$ go version
バージョン情報が表示されればOKです。もしインストールされていない場合は、公式サイトや、Homebrew (brew install go
) などを使ってインストールしてください。
Go環境が準備できたら、以下のコマンド一発でgeminicli
をインストールできます。
$ go install github.com/google/generative-ai-go/cmd/geminicli@latest
次に、geminicli
がGoogleのAIと通信するための「鍵」となるAPIキーを取得します。
取得したAPIキーを、環境変数 GEMINI_API_KEY
に設定します。ターミナルを再起動しても設定が維持されるよう、シェルの設定ファイル(.bashrc
, .zshrc
など)に追記するのがおすすめです。
# ~/.zshrc や ~/.bashrc に以下の行を追記
export GEMINI_API_KEY="ここに取得したAPIキーを貼り付け"
ファイルを保存したら、source ~/.zshrc
を実行するか、ターミナルを再起動して設定を反映させましょう。
alias g="geminicli"
で爆速AI体験をこれでgeminicli
を使う準備は整いましたが、最後に最高の体験のための仕上げです。geminicli
と毎回タイプするのは少し長いですよね。そこで、短いエイリアス(別名)を設定しましょう。
先ほどと同じく、.zshrc
や.bashrc
に以下の行を追記します。
# ~/.zshrc や ~/.bashrc に追記
alias g='geminicli'
設定を反映させれば完了です!これからは、g
とタイプするだけでgeminicli
を呼び出せます。
# このように使える!
$ g "今日の天気は?"
$ cat main.go | g "このコードのバグを探して"
$ g -chat
まるでOSに標準搭載されたAI機能のように、軽快にAIの力を借りられるようになりました。
geminicli
は、単なる目新しい効率化ツールではありません。
それは、私たち技術者が最も多くの時間を過ごす「思考の場」であるターミナルに、AIという強力無比な「思考のパートナー」を常駐させる、新しい働き方の提案です。
コードの壁にぶつかったとき、未知のエラーに遭遇したとき、あるいは退屈な定型作業を自動化したいとき。これからは、ブラウザを開く前に、隣にいる最高の相棒に声をかけてみてください。
さあ、今日からあなたのターミナルを、ただのコマンド実行環境から、最高の思考パートナーへとアップグレードしましょう。黒い画面が、もっとクリエイティブな場所に変わるはずです。