Gemini CLIでGo言語でCLIコマンドをラップしたCLIツールを作成しました

技術

noteでGemini CLIが気になるという記事を書いたばかりでしたが、早速試してみました。

結論から言うと、Gemini CLIはめちゃくちゃ使えるツールです。

よく使うCLIツールのラッパーを作ってみました

こちらの記事で書いたのですが、CLIでマークダウンでWeb記事を書いています。

その際に MarkdownとHTMLの変換をすることがあるのですが、その際に

pandoc <ファイル名.md> -f gfm -t html --lua-filter=no-id.lua -o <ファイル名.html>

など長めのコマンドを打つ必要があるので、それを

pdoc <ファイル名.md>

で <ファイル名.html> が生成されるようにしたいということがありました。

完成したツールをGitHubで公開しています。
https://github.com/gitchx/gitchx-cli

Gemini CLIについて

GitHubにインストール方法が記載されています。
https://github.com/google-gemini/gemini-cli

Nord.jsで作られていて npm でインストールできます。
MacだとHomebrewでも入れられました。

ローカル環境ではもちろんですが、そんなにスペックに余裕のないVPSでも問題なく使用できました。

Linuxの操作の補助もしてもらえるので、サーバーのセットアップにも活用できます。

gemini

コマンドで対話型で起動します。

geminiへのメッセージ入力欄でコマンドを打つことで、いい感じに解釈してコマンド操作を提案してくれます。

/chat save <tag>
/chat resume <tag>

でコンテクストを保存したり呼び出したりできます。

GEMINI.md にプロンプトを記入できます。

Go言語で作る理由

クロスプラットフォームで1つのコードでMacでもWindowsでも使えるようにできる点と
職場で記事を書くときは、Webの記事を書くことがメインの仕事ではないため、
途切れ途切れに複数台のPCを使うことがあるので、インタプリタ型の言語のPythonやNord.jsだと各PCで実行環境を整えなくてはいけないため、コンパイル型言語のGoが適しているかなと思いました。

その他に追加したコマンド

Windows 10のPowerShellではデフォルトの状態だと cat コマンドが文字化けするので、

Get-Content <ファイル名> -encoding utf8

と入力して、エンコードをutf8でするように指定してファイルの中身を確認していましたが、

wcat <ファイル名>

でできるコマンドを追加しました。

pdoc <ファイル名>

でhtmlとmdのときで分岐して、相互に変換できるようにしました。

使用する頻度が高ければ、qpdfでファイル分割をするコマンドなども追加したいと思っています。

ライセンスに気をつけなければいけませんが、今はpandocやqpdfがインストールされていることが前提なので、それぞれのツールを組み込めばもっと利便性が上がりそうです。

まとめ

ちょうどツールが完成したときくらいに Gemini Proの使用制限に到達して、Gemini miniに切り替わりました。

Gemini CLIの使用で生産性がかなり高まるため、課金もありかなと思ってしまいます。

あまりまだ試せていませんが、Gemini miniでもいい感じに考えてくれると思います。

Gemini CLI すごいです。

コメント

  1. AI Commenter より:

    この記事を読んで、Gemini CLIという便利なツールが作られたことに驚きました。特に、MarkdownとHTMLの変換を簡略化するためのツールとしての利用例が興味深かったです。また、Gemini CLIがGo言語で作られている理由や、Windows 10のPowerShellでの文字化け問題への対処法など、実用的な情報が盛りだくさんで参考になりました。

    Gemini CLIの対話型操作やプロンプト記入の機能、追加されたコマンドの使い勝手の良さが示唆されており、ライセンスに気をつけながらさらなる機能拡張を考えているとのこと、ユーザーの利便性を考慮した開発姿勢に感心しました。

    Gemini ProからGemini miniに切り替わり、Gemini CLIの生産性向上による課金の検討が進むという点も興味深いです。Gemini CLIの優れた機能をさらに活用して、Gemini miniでも効率的な作業を実現できると期待されます。Gemini CLIは本当に素晴らしいツールであると感じました。

  2. soma より:

    Gemini miniじゃなくて、Gemini 2.5 Flashが正式名称でした。
    Gemini Proだとすぐ制限が来てしまいますが、progemini –model=gemini-2.5-flashとすることでgemini-2.5-flashで使用を続けられます。

    AI CommenterのコメントもLLMによるコメントです。
    AIにコメントさせるWordPressプラグインを作ったのでそちらについても今度記事を書きます。

  3. soma より:

    Go言語で書かなくてもBashスクリプトでできる気がする…