跳转至

CLI 命令

Gemini CLI 支持多种内置命令,帮助您管理会话、自定义界面以及控制其行为。这些命令以正斜杠 (/)、@ 符号 (@) 或感叹号 (!) 为前缀。

斜杠命令 (/)

斜杠命令提供对 CLI 本身的元级别控制。

  • /bug

  • 描述: 报告 Gemini CLI 的问题。默认情况下,问题将提交到 Gemini CLI 的 GitHub 仓库中。在 /bug 后输入的字符串将成为所报告问题的标题。可以使用 .gemini/settings.json 文件中的 bugCommand 设置修改默认的 /bug 行为。

  • /chat

  • 描述: 保存并恢复对话历史记录,以便交互式地分支对话状态,或从后续会话中恢复到之前的状态。

  • 子命令:

    • save
    • 描述: 保存当前对话历史记录。您必须添加一个 <tag> 来标识对话状态。
    • 用法: /chat save <tag>
    • resume
    • 描述: 从之前保存的状态恢复对话。
    • 用法: /chat resume <tag>
    • list
    • 描述: 列出可用于恢复聊天状态的标签。
  • /clear

  • 描述: 清除终端屏幕,包括 CLI 内可见的会话历史记录和回滚区。根据具体实现,底层会话数据(用于历史记录调用)可能会被保留,但视觉显示将被清除。

  • 键盘快捷键: 随时按下 Ctrl+L 执行清除操作。

  • /compress

  • 描述: 用摘要替换整个聊天上下文。这可以节省未来任务中使用的 Token,同时保留对已发生事件的高级摘要。

  • /editor

  • 描述: 打开一个对话框,用于选择支持的编辑器。

  • /help (或 /?)

  • 描述: 显示有关 Gemini CLI 的帮助信息,包括可用命令及其用法。

  • /mcp

  • 描述: 列出已配置的“模型上下文协议 (MCP)”服务器、它们的连接状态、服务器详细信息和可用工具。

  • 子命令:
    • descdescriptions:
    • 描述: 显示 MCP 服务器和工具的详细描述。
    • nodescnodescriptions:
    • 描述: 隐藏工具描述,仅显示工具名称。
    • schema:
    • 描述: 显示工具已配置参数的完整 JSON Schema。
  • 键盘快捷键: 随时按下 Ctrl+T 可切换显示和隐藏工具描述。

  • /memory

  • 描述: 管理 AI 的指令上下文(从 GEMINI.md 文件加载的层级记忆)。

  • 子命令:

    • add:
    • 描述: 将以下文本添加到 AI 的记忆中。用法:/memory add <要记住的文本>
    • show:
    • 描述: 显示从所有 GEMINI.md 文件加载的当前层级记忆的完整、串联内容。这让您可以检查提供给 Gemini 模型的指令上下文。
    • refresh:
    • 描述: 从配置位置(全局、项目/祖先目录和子目录)中找到的所有 GEMINI.md 文件重新加载层级指令记忆。此命令使用最新的 GEMINI.md 内容更新模型。
    • 注意: 有关 GEMINI.md 文件如何构成层级记忆的更多详细信息,请参阅CLI 配置文档
  • /restore

  • 描述: 将项目文件恢复到工具执行之前的状态。这对于撤销工具所做的文件修改特别有用。如果未指定工具调用 ID 运行,它将列出可用于恢复的检查点。

  • 用法: /restore [tool_call_id]
  • 注意: 仅当 CLI 使用 --checkpointing 选项调用或通过设置配置时才可用。有关更多详细信息,请参阅检查点文档

  • /stats

  • 描述: 显示当前 Gemini CLI 会话的详细统计信息,包括 Token 用量、缓存的 Token 节省量(如果可用)和会话持续时间。注意:缓存的 Token 信息仅在使用缓存 Token 时显示,这在使用 API 密钥认证时发生,但在当前不适用于 OAuth 认证。

  • /theme

  • 描述: 打开一个对话框,允许您更改 Gemini CLI 的视觉主题。

  • /auth

  • 描述: 打开一个对话框,允许您更改认证方法。

  • /about

  • 描述: 显示版本信息。在提交问题时请分享此信息。

  • /tools

  • 描述: 显示 Gemini CLI 中当前可用的工具列表。

  • 子命令:

    • descdescriptions:
    • 描述: 显示每个工具的详细描述,包括工具名称及其提供给模型的完整描述。
    • nodescnodescriptions:
    • 描述: 隐藏工具描述,仅显示工具名称。
  • /quit (或 /exit)

  • 描述: 退出 Gemini CLI。

@ 符号命令 (@)

@ 符号命令用于将文件或目录的内容作为提示的一部分包含到 Gemini 中。这些命令支持 Git 敏感过滤。

  • @<文件或目录路径>

  • 描述: 将指定文件或多个文件的内容注入到当前提示中。这对于询问有关特定代码、文本或文件集合的问题非常有用。

  • 示例:
    • @path/to/your/file.txt Explain this text.
    • @src/my_project/ Summarize the code in this directory.
    • What is this file about? @README.md
  • 详细信息:
    • 如果提供单个文件路径,则读取该文件的内容。
    • 如果提供目录路径,则命令会尝试读取该目录及其任何子目录中的文件内容。
    • 路径中的空格应使用反斜杠转义(例如,@My\ Documents/file.txt)。
    • 该命令内部使用 read_many_files 工具。内容被获取,然后插入到您的查询中,再发送给 Gemini 模型。
    • Git 敏感过滤: 默认情况下,会排除 Git 忽略的文件(例如 node_modules/dist/.env.git/)。此行为可以通过 fileFiltering 设置进行更改。
    • 文件类型: 该命令适用于文本文件。虽然它可能会尝试读取任何文件,但二进制文件或非常大的文件可能会被底层的 read_many_files 工具跳过或截断,以确保性能和相关性。该工具会指示是否有文件被跳过。
  • 输出: CLI 将显示一个工具调用消息,指示使用了 read_many_files,以及详细说明状态和已处理路径的消息。

  • @ (单独的 @ 符号)

  • 描述: 如果您单独输入一个 @ 符号而没有路径,则查询将按原样传递给 Gemini 模型。如果您在提示中专门讨论 @ 符号,这可能会很有用。

@ 符号命令的错误处理

  • 如果 @ 后指定的路径未找到或无效,将显示错误消息,并且查询可能不会发送到 Gemini 模型,或者在没有文件内容的情况下发送。
  • 如果 read_many_files 工具遇到错误(例如,权限问题),也会报告此错误。

Shell 模式和直通命令 (!)

感叹号 (!) 前缀允许您直接从 Gemini CLI 中与系统 Shell 进行交互。

  • !<shell 命令>

  • 描述: 在系统的默认 Shell 中执行给定的 <shell 命令>。命令的任何输出或错误都会显示在终端中。

  • 示例:

    • !ls -la (执行 ls -la 并返回 Gemini CLI)
    • !git status (执行 git status 并返回 Gemini CLI)
  • ! (切换 Shell 模式)

  • 描述: 单独输入 ! 会切换 Shell 模式。

    • 进入 Shell 模式:
    • 激活时,Shell 模式使用不同的颜色和“Shell 模式指示器”。
    • 在 Shell 模式下,您输入的文本将直接被解释为 Shell 命令。
    • 退出 Shell 模式:
    • 退出时,UI 将恢复其标准外观,并恢复正常的 Gemini CLI 行为。
  • 所有 ! 用法的注意事项: 您在 Shell 模式下执行的命令与您直接在终端中运行它们具有相同的权限和影响。