Gemini CLI 迎来一项重大更新,显著提升了您的工作流效率。现在,您可以直接在 Gemini CLI 内部运行复杂的交互式命令,例如使用 vim 编辑文件、通过 top 监控系统,甚至执行 git rebase -i 等操作。您无需再切换到独立的终端,也告别了因交互式命令而“卡住”的窘境。

将一切保留在上下文中

这一改进的核心优势在于,所有操作都将在 Gemini CLI 的上下文中进行。以往,运行交互式 shell 命令需要退出 Gemini CLI,这会导致命令在 Gemini CLI 的上下文之外执行,从而丢失会话信息。

通过引入伪终端(Pseudo-Terminal, PTY)支持,那些需要丰富终端功能的应用——如文本编辑器、系统监视器或依赖终端控制码的工具——现在都可以在 Gemini CLI 内部及其上下文中无缝运行。

工作原理:序列化终端状态

当您执行 shell 命令时,Gemini CLI 会借助 node-pty 库,在后台的一个伪终端内启动一个新进程。PTY 充当中间层,为操作系统提供必要的接口,使其将该会话识别为一个终端。这使得各种应用程序和命令能以其原生设计的方式运行。

实时状态流

那么,这个在后台运行的虚拟终端是如何呈现在您屏幕上的呢?可以将其想象成一个视频流。我们全新的序列化器会实时捕捉伪终端的每一个快照——包括所有文本、颜色,甚至是光标位置。这些快照以流的形式传输给您,让您能够实时查看并与终端应用交互。这不仅仅是文本流,而是动态的实时画面。

完整的双向交互

新架构实现了完整的双向通信。我们增加了向终端写入输入甚至动态调整其大小的功能。您的键盘输入会被发送到正在运行的进程中;当您调整窗口大小时,Gemini shell 内的应用程序也会像在原生终端中一样自适应布局。

您可以使用 ctrl+f 组合键聚焦于终端。同时,我们还改进了输出处理,能够正确渲染彩色的终端输出,让您尽情享受心爱命令行工具的完整体验。

如何开始使用

v0.9.0 版本起,新的交互式 shell 已默认启用。您可以通过以下命令升级到最新版本:

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

如需更多信息,请参阅 Gemini CLI 的官方文档。

应用场景示例

以下是您现在可以在交互式 shell 中运行的部分命令类型:

  • 使用 vimnvimnano 编辑代码。
  • 通过交互式 Git 命令(如 git rebase -i)管理提交。
  • 运行您偏爱语言的交互式 REPL 环境。
  • 执行 htopmc 等全屏终端应用。
  • 轻松导航 npm initng new 等交互式设置脚本。
  • 响应特定 gcloud 命令的交互式提示。

展望与反馈

这是我们 shell 集成迈出的重要一步。我们正积极优化跨平台的输入处理。如果您在使用过程中遇到任何问题或不一致的情况,欢迎在我们的 GitHub 仓库中分享您的反馈。


👉 如果你需要 ChatGPT 代充 / Claude / Claude Code / 镜像 / 中转 API