CLI 命令

Gemini CLI 提供多种内置命令,帮助你管理会话、定制界面与控制行为。这些命令以斜杠(/)、@ 符号(@)或感叹号(!)开头。

斜杠命令(/

斜杠命令用于对 CLI 进行元级别的控制。

内置命令

  • /bug

    • 说明: 用于反馈 Gemini CLI 问题。默认会在 Gemini CLI 的 GitHub 仓库创建 Issue。/bug 后面输入的字符串将作为 Issue 标题。可通过 .gemini/settings.json 中的 advanced.bugCommand 修改默认行为。
  • /chat

    • 说明: 保存与恢复对话历史,支持交互式分支会话或在后续会话中恢复状态。
    • 子命令:
      • save
        • 说明: 保存当前对话历史,需要提供 <tag> 作为标识。
        • 用法: /chat save <tag>
        • Checkpoint 存储位置:
          • Linux/macOS:~/.gemini/tmp/<project_hash>/
          • Windows:C:\Users\<YourUsername>\.gemini\tmp\<project_hash>\
          • /chat list 仅会扫描上述目录以查找可用 checkpoint。
          • 备注: 这些 checkpoint 用于手动保存/恢复对话;若需要在文件修改前自动保存,请参阅 Checkpointing 文档
      • resume
        • 说明: 从指定标签恢复对话。
        • 用法: /chat resume <tag>
      • list
        • 说明: 列出可用的对话标签。
      • delete
        • 说明: 删除某个已保存的对话 checkpoint。
        • 用法: /chat delete <tag>
      • share
        • 说明: 将当前会话写入指定 Markdown 或 JSON 文件。
        • 用法: /chat share file.md/chat share file.json;若未提供文件名,CLI 会自动生成。
  • /clear

    • 说明: 清空终端屏幕,包括可见会话记录与滚动区域。底层会话数据(用于历史回溯)可能仍被保留,但界面显示会被清除。
    • 快捷键: 随时按 Ctrl+L
  • /compress

    • 说明: 将当前对话上下文压缩为摘要,在保留关键信息的同时节省后续任务的 Token。
  • /copy

    • 说明: 将 Gemini CLI 最近一次输出复制到剪贴板,方便分享或复用。
    • 注意: 依赖操作系统的剪贴板工具。
      • Linux 需要 xclipxsel(可通过包管理器安装)。
      • macOS 需要 pbcopy,Windows 需要 clip(通常已预装)。
  • /directory(或 /dir

    • 说明: 管理多目录工作区。
    • 子命令:
      • add
        • 说明: 向工作区添加目录,路径可为绝对路径、相对路径或 ~ 开头的家目录引用。
        • 用法: /directory add <path1>,<path2>
        • 备注: 在受限沙箱配置中不可用;若是这种场景,可在启动会话时使用 --include-directories
      • show
        • 说明: 显示通过 /directory add--include-directories 添加的所有目录。
        • 用法: /directory show
  • /editor

    • 说明: 打开编辑器选择对话框,列出可用编辑器。
  • /extensions

  • /help(或 /?

    • 说明: 显示 Gemini CLI 的帮助信息,包括可用命令及用法。
  • /mcp

    • 说明: 列出配置的 Model Context Protocol (MCP) server,其连接状态、详情与可用工具。
    • 子命令:
      • desc / descriptions:显示 MCP server 与工具的详细描述。
      • nodesc / nodescriptions:隐藏描述,仅显示工具名称。
      • schema:显示工具参数的完整 JSON Schema。
    • 快捷键:Ctrl+T 可切换显示/隐藏工具描述。
  • /memory

    • 说明: 管理 AI 的指令上下文(来自层级式 GEMINI.md)。
    • 子命令:
      • add:向记忆中添加文本。用法:/memory add <text>
      • show:显示当前加载的所有 GEMINI.md 内容的拼接结果,便于检查提供给模型的指令。
      • refresh:重新加载所有位置(全局、项目/祖先目录、子目录)的 GEMINI.md,确保模型使用最新指令。
      • list:列出用于层级记忆的 GEMINI.md 文件路径。
      • 备注: 关于 GEMINI.md 如何作用于层级记忆,请参阅配置文档
  • /restore

    • 说明: 将项目文件恢复到某个工具执行前的状态,适合撤销工具带来的文件修改。若不带参数,会列出可用的 checkpoint。
    • 用法: /restore [tool_call_id]
    • 备注: 仅在使用 --checkpointing 启动或通过配置启用后可用,详见 Checkpointing 文档
  • /settings

    • 说明: 打开设置编辑器,查看并修改 Gemini CLI 的配置。
    • 详情: 提供比手动编辑 .gemini/settings.json 更友好的方式,并带有校验与提示以避免错误;部分配置即时生效,另一些需要重启。
  • /stats

    • 说明: 显示当前会话的详细统计信息,包括 Token 使用量、缓存 Token 节省(如适用)以及会话时长。注意:仅在使用 API key 且启用 Token 缓存时会展示缓存数据,OAuth 模式目前不支持。
  • /theme

    • 说明: 打开主题选择对话框,切换 CLI 的视觉主题。
  • /auth

    • 说明: 打开身份验证方式选择对话框。
  • /about

    • 说明: 显示版本信息。提交 Issue 时请附上此信息。
  • /tools

    • 说明: 列出当前可用的工具。
    • 用法: /tools [desc]
    • 子命令:
      • desc / descriptions:显示每个工具的详细描述(即提供给模型的说明)。
      • nodesc / nodescriptions:隐藏描述,仅显示工具名称。
  • /privacy

    • 说明: 展示隐私声明,并让用户选择是否同意用于服务改进的数据收集。
  • /quit(或 /exit

    • 说明: 退出 Gemini CLI。
  • /vim

    • 说明: 切换 Vim 模式。在 Vim 模式下,输入框支持 NORMAL / INSERT 两种模式的 Vim 操作。
    • 特性:
      • NORMAL 模式: hjkl 导航;wbe 按词跳转;0$^ 行首行尾;G/gg 跳转到指定行。
      • INSERT 模式: 常规输入,按 Esc 返回 NORMAL。
      • 编辑命令: x 删除、c 修改、i/a/o/O 插入,支持 ddccdwcw 等组合。
      • 计数支持: 可在命令前加数字(如 3h5w10G)。
      • 重复上次操作: 使用 . 重复上一编辑动作。
      • 持久化设置: Vim 模式偏好会写入 ~/.gemini/settings.json,在会话间保持。
    • 状态指示: 启用后页脚会显示 [NORMAL][INSERT]
  • /init

    • 说明: 帮助用户快速生成 GEMINI.md:命令会分析当前目录,生成定制化上下文文件,方便为 Gemini 代理提供项目说明。

自定义命令

自定义命令可以为常用提示创建专属快捷方式。创建、管理与使用方法请参阅自定义命令文档

输入提示快捷键

以下快捷键适用于输入框,用于文本编辑:

  • 撤销:

    • 快捷键:Ctrl+Z
  • 重做:

    • 快捷键:Ctrl+Shift+Z

@ 命令(@

@ 命令用于在 Prompt 中包含文件或目录内容,同时具备 Git 过滤能力。

  • @<文件或目录路径>

    • 说明: 将指定文件(或目录中的文件)内容注入当前 Prompt,适合就特定代码、文本或文件集合提问。
    • 示例:
      • @path/to/your/file.txt 请解释这段文本。
      • @src/my_project/ 请总结该目录中的代码。
      • 这个文件主要内容是什么? @README.md
    • 细节:
      • 指向单个文件时,读取该文件内容;指向目录时,会尝试读取该目录及子目录下的文件。
      • 路径中如有空格需使用反斜杠转义(如 @My\ Documents/file.txt)。
      • 命令底层使用 read_many_files 工具,会先获取内容再与问题一同发送给模型。
      • Git 过滤: 默认跳过 Git 忽略的文件(如 node_modules/dist/.env.git/),可通过 context.fileFiltering 设置调整。
      • 文件类型: 主要用于文本文件。若文件为二进制或体积巨大,底层可能跳过或截断;工具会提示跳过情况。
    • 输出: CLI 会展示 read_many_files 的调用信息及处理的路径。
  • 单独的 @

    • 说明: 若仅输入 @ 而无路径,请求会原样发送给模型。适用于在 Prompt 中讨论 @ 符号本身的情况。

@ 命令的错误处理

  • 若路径不存在或无效,会显示错误信息,并可能不向模型发送文件内容。
  • read_many_files 遇到权限等问题,也会返回错误。

Shell 模式与 ! 命令

! 前缀允许在 Gemini CLI 内直接执行系统 Shell 命令。

  • !<shell_command>

    • 说明: 执行指定命令。在 Linux/macOS 使用 bash,在 Windows 使用 cmd.exe,其标准输出与错误会显示在终端。
    • 示例:
      • !ls -la
      • !git status
  • 单独的 !(切换 shell 模式)

    • 说明: 输入单独的 ! 可进入或退出 shell 模式。
      • 进入 shell 模式: 界面会改变颜色并显示 “Shell Mode Indicator”,此时输入会被视为 shell 命令。
      • 退出 shell 模式: UI 恢复,CLI 回到正常模式。
  • 使用提醒: 在 shell 模式执行的命令拥有与你在终端直接运行时相同的权限与影响。

  • 环境变量:! 命令或 shell 模式执行时,子进程环境中会设置 GEMINI_CLI=1,方便脚本识别自己运行于 Gemini CLI 内。