1. 前言 Gemini CLI 是 Google 推出的一个命令行工具,可以让你通过命令行与 Gemini 模型进行交互。 现在,我的很多编程场景都在使用 Gemini CLI 来完成。用 Gemini CLI 的时候总觉得有点束缚,每个项目
1. 前言Gemini CLI 是 Google 推出的一个命令行工具,可以让你通过命令行与 Gemini 模型进行交互。 现在,我的很多编程场景都在使用 Gemini CLI 来完成。用 Gemini CLI 的时候总觉得有点束缚,每个项目只能配一个 gemini.md,想换个场景还得改来改去,太麻烦了! 不像 Cursor 可以配置多条 cursor rule,Gemini CLI 在一个工程中只能配置一条系统提示词,想设定多种场景的话只能都写到一个提示词中。这会导致提示词效果变差。 功夫不负有心人,在我翻遍了 Gemini CLI 的官方文档后,终于让我找到了一个完美的解决方案——自定义命令!???? 2. 认识一下“自定义命令”Gemini CLI 提供一系列内置命令,帮助用户管理会话、自定义界面以及控制行为。这些命令以斜杠 / 开头。 Gemini CLI 内置了一系列命令,如/help、 /clear、 /copy 等。
我们可以注意到, 利用自定义命令可以管理我们的提示词,正符合我的需求,因此我决定使用自定义命令来实现灵活的系统提示词。 3. 三步创建你的第一个命令Gemini CLI 从两个位置发现命令,并按特定顺序加载:
如果项目目录中的命令与用户目录中的命令同名,将始终使用项目命令。这允许项目使用特定于项目的版本覆盖全局命令。 命令的名称由其相对于 commands 目录的文件路径决定。子目录用于创建命名空间命令,路径分隔符(/ 或 \)将转换为冒号(:)。
自定义命令定义文件必须以 TOML 格式编写,并使用.toml 文件扩展名。
下面我给一个示例,可以简单的看一下
添加该文件后,就可以在 Gemini 中调用 /prdspliter 命令来拆解需求。 {{args}} 是 Gemini CLI 的占位符,表示用户在命令输入的全部内容。如果做简单的提示词管理,目前就已经足够了。 但是如果想做更复杂的逻辑,比如结合命令行工具等,应该怎么做呢? 4. 终极玩法:让自定义命令与Shell联动起来您可以通过直接在 prompt 中执行 shell 命令并注入其输出来使命令具有动态性。这非常适合从本地环境收集上下文,例如读取文件内容或检查 Git 状态。 当自定义命令尝试执行 shell 命令时,Gemini CLI 现在会提示您确认,然后才继续。这是一种安全措施,可确保只运行预期的命令。 工作原理:
CLI 仍然遵循全局的 excludeTools 和 coreTools 设置。 示例 (git/commit.toml): 此命令获取暂存的 Git 差异,并用它来要求模型编写提交消息。
当用户运行 /git:commit 时,CLI 首先执行 git diff --staged,然后用该命令的输出替换 !{git diff --staged},最后将完整的提示发送给模型。 小结总而言之,Gemini CLI 的自定义命令绝对是个值得深挖的功能,它能极大地提升我们的工作流效率。 为了方便大家,我已经把文中提到的 git:commit 和其他几个我私藏的实用命令都整理好了,放到了 GitHub 仓库里。 |
2026-06-02
2026-06-24
2026-06-01
2026-06-25
2026-05-31