Gemini CLI で新しいレベルのインタラクティブ性を実現

2025年10月15日
Gal Zahavi Software Engineer
Jack Wotherspoon Developer Advocate

ワークフローをさらにパワフル使いやすいものにする Gemini CLI の機能強化をお知らせします。ターミナルがアップグレードされ、複雑でインタラクティブなコマンドを使う vim での編集、top でのモニタリング、さらにはインタラクティブな git rebase -i の操作まで、すべて Gemini CLI 内で直接実行できるようになりました。別のターミナルに切り替えたり、インタラクティブなコマンドに対して「ハングアップ」してしまうエージェント型 CLI に対処したりする必要はもうありません。すべてが 1 か所で完結します。

すべてのコマンドをコンテキスト内に

このことがなぜ重要かというと、すべてのコマンドが Gemini CLI のコンテキスト内で実行できるようになったからです。以前は、インタラクティブなシェルコマンドを実行するには Gemini CLI を終了する必要がありました。さらに重要なことに、これらのコマンドは Gemini CLI のコンテキスト外で実行されていました。疑似端末(PTY)のサポートを導入することで、テキスト エディタ、システムモニタ、端末制御コードへの依存などの豊富な機能を必要とするコマンドを、すべて Gemini CLI およびそのコンテキスト内で実行できるようになりました。

仕組み: ターミナルの状態のシリアル化

シェルコマンドを実行すると、Gemini CLI は node-pty ライブラリを活用して、バックグラウンドで疑似端末内に新しいプロセスを生成します。PTY は仲介者として機能し、オペレーティング システムがセッションをターミナルとして認識するために必要なインターフェースを提供します。これにより、アプリケーションとコマンドを本来設計されたとおりに実行できます。

では、バックグラウンドで実行されているこの仮想端末は、どのようにして画面に表示されるのでしょうか。その仕組みは、動画ストリームのようなものです。新しいシリアライザは、あらゆる瞬間の疑似端末のスナップショットを取得し、すべてのテキスト、色、さらにはカーソルの位置まで記録します。その後、これらのスナップショットがストリーミングされることで、ターミナル アプリケーションをリアルタイムで表示し、操作できるようになります。単なるテキストのストリームではなく、ライブフィードです。

Gemini CLI - interactive shell

完全な双方向のインタラクション

この新しいアーキテクチャにより、双方向の通信が可能になります。ターミナルに入力を書き込んだり、その場でサイズを変更したりする新しい機能が追加されました。ネイティブ ターミナルでの操作と同様に、キーボードを打てば実行中のプロセスにキーストロークが送信され、ウィンドウのサイズを変更すれば Gemini のシェル内のアプリケーションでレイアウトが調整されます。Ctrl+F キーを押すと、ターミナルにフォーカスできます。

また、出力処理も改善されました。カラフルなターミナル出力が正しくレンダリングされるため、お気に入りのコマンドライン ツールを完全な状態で使用できます。

インタラクティブ シェルのスタートガイド

新しいインタラクティブ シェルは、v0.9.0 時点の Gemini CLI でデフォルトで有効になっています。

次のコマンドを使用して最新バージョンにアップグレードしてください。

npm install -g @google/gemini-cli@latest

詳細については、公式の Gemini CLI ドキュメントをご覧ください。

インタラクティブ シェルで実行できるようになったコマンドの種類をいくつか例示します。

  • vim、nvim、nano でコードを編集する。
  • インタラクティブな git コマンドでコミットを管理する。
  • お気に入りの言語のインタラクティブな REPL を使用する。
  • htop や mc などのフルスクリーン ターミナル アプリケーションを実行する。
  • npm init や ng new などのインタラクティブなセットアップ スクリプトを簡単に操作する。
  • 特定の gcloud コマンドの対話型プロンプトに応答する。

今回ご紹介した内容はシェル統合の大きな一歩であり、Google はさらにすべてのプラットフォームでの入力処理を改善するため積極的に取り組んでいます。不整合にお気付きの場合は、GitHub リポジトリでフィードバックをお寄せください。

ぜひお試しいただき、感想をお知らせください!