CLI 命令
Gemini CLI 支持多个内置命令来帮助您管理会话、自定义界面和控制其行为。这些命令以正斜杠(/
)、at 符号(@
)或感叹号(!
)作为前缀。
斜杠命令(/
)
斜杠命令提供对 CLI 本身的元级别控制。
/bug
- 描述: 提交关于 Gemini CLI 的问题报告。默认情况下,问题会在 Gemini CLI 的 GitHub 仓库中提交。您在
/bug
后输入的字符串将成为所提交错误的标题。可以通过.gemini/settings.json
文件中的bugCommand
设置来修改默认的/bug
行为。
- 描述: 提交关于 Gemini CLI 的问题报告。默认情况下,问题会在 Gemini CLI 的 GitHub 仓库中提交。您在
/chat
- 描述: 保存和恢复对话历史记录,用于交互式分支对话状态或从后续会话中恢复之前的状态。
- 子命令:
save
- 描述: 保存当前对话历史记录。您必须添加一个
<tag>
来标识对话状态。 - 用法:
/chat save <tag>
- 描述: 保存当前对话历史记录。您必须添加一个
resume
- 描述: 从之前的保存中恢复对话。
- 用法:
/chat resume <tag>
list
- 描述: 列出可用于聊天状态恢复的标签。
/clear
- 描述: 清除终端屏幕,包括 CLI 中的可见会话历史记录和回滚。根据具体实现,底层会话数据(用于历史记录回调)可能会被保留,但视觉显示会被清除。
- 键盘快捷键: 随时按 Ctrl+L 执行清除操作。
/compress
- 描述: 用摘要替换整个聊天上下文。这可以节省未来任务使用的令牌,同时保留已发生事件的高级摘要。
/editor
- 描述: 打开选择支持编辑器的对话框。
/help
(或/?
)- 描述: 显示有关 Gemini CLI 的帮助信息,包括可用命令及其用法。
/mcp
- 描述: 列出已配置的模型上下文协议(MCP)服务器、其连接状态、服务器详细信息和可用工具。
- 子命令:
desc
或descriptions
:- 描述: 显示 MCP 服务器和工具的详细描述。
nodesc
或nodescriptions
:- 描述: 隐藏工具描述,只显示工具名称。
schema
:- 描述: 显示工具配置参数的完整 JSON 架构。
- 键盘快捷键: 随时按 Ctrl+T 在显示和隐藏工具描述之间切换。
/memory
- 描述: 管理 AI 的指令上下文(从
GEMINI.md
文件加载的分层记忆)。 - 子命令:
add
:- 描述: 将以下文本添加到 AI 的记忆中。用法:
/memory add <要记住的文本>
- 描述: 将以下文本添加到 AI 的记忆中。用法:
show
:- 描述: 显示从所有
GEMINI.md
文件加载的当前分层记忆的完整连接内容。这让您可以检查提供给 Gemini 模型的指令上下文。
- 描述: 显示从所有
refresh
:- 描述: 从配置位置(全局、项目/祖先和子目录)中找到的所有
GEMINI.md
文件重新加载分层指令记忆。此命令使用最新的GEMINI.md
内容更新模型。
- 描述: 从配置位置(全局、项目/祖先和子目录)中找到的所有
- 注意: 有关
GEMINI.md
文件如何贡献分层记忆的更多详细信息,请参见 CLI 配置文档。
- 描述: 管理 AI 的指令上下文(从
/restore
/stats
- 描述: 显示当前 Gemini CLI 会话的详细统计信息,包括令牌使用情况、缓存令牌节省(如果可用)和会话持续时间。注意:缓存令牌信息仅在使用缓存令牌时显示,这在 API 密钥身份验证时发生,但目前在 OAuth 身份验证时不发生。
- 描述: 打开一个对话框,让您更改 Gemini CLI 的视觉主题。
/auth
- 描述: 打开一个对话框,让您更改身份验证方法。
/about
- 描述: 显示版本信息。提交问题时请分享此信息。
- 描述: 显示 Gemini CLI 中当前可用的工具列表。
- 子命令:
desc
或descriptions
:- 描述: 显示每个工具的详细描述,包括每个工具的名称及其提供给模型的完整描述。
nodesc
或nodescriptions
:- 描述: 隐藏工具描述,只显示工具名称。
/quit
(或/exit
)- 描述: 退出 Gemini CLI。
At 命令(@
)
At 命令用于将文件或目录的内容作为您向 Gemini 提示的一部分包含进来。这些命令包括 git 感知过滤。
@<文件或目录路径>
- 描述: 将指定文件或文件的内容注入到您当前的提示中。这对于询问有关特定代码、文本或文件集合的问题很有用。
- 示例:
@path/to/your/file.txt 解释这个文本。
@src/my_project/ 总结这个目录中的代码。
这个文件是关于什么的? @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
,以及详细说明状态和处理的路径的消息。
@
(单独的 at 符号)- 描述: 如果您输入单独的
@
符号而没有路径,查询将按原样传递给 Gemini 模型。如果您在提示中特别谈论@
符号,这可能很有用。
- 描述: 如果您输入单独的
@
命令的错误处理
- 如果在
@
后指定的路径未找到或无效,将显示错误消息,查询可能不会发送给 Gemini 模型,或者会在没有文件内容的情况下发送。 - 如果
read_many_files
工具遇到错误(例如,权限问题),这也会被报告。
Shell 模式和透传命令(!
)
!
前缀让您直接从 Gemini CLI 内与系统的 shell 交互。
!<shell_command>
- 描述: 在系统的默认 shell 中执行给定的
<shell_command>
。命令的任何输出或错误都会在终端中显示。 - 示例:
!ls -la
(执行ls -la
并返回到 Gemini CLI)!git status
(执行git status
并返回到 Gemini CLI)
- 描述: 在系统的默认 shell 中执行给定的
!
(切换 shell 模式)- 描述: 单独输入
!
会切换 shell 模式。- 进入 shell 模式:
- 激活时,shell 模式使用不同的着色和"Shell 模式指示器"。
- 在 shell 模式下,您输入的文本直接解释为 shell 命令。
- 退出 shell 模式:
- 退出时,UI 恢复到标准外观,正常的 Gemini CLI 行为恢复。
- 进入 shell 模式:
- 描述: 单独输入
所有
!
使用的注意事项: 您在 shell 模式中执行的命令具有与您直接在终端中运行它们相同的权限和影响。