系统提示覆盖
用 GEMINI_SYSTEM_MD 环境变量用你自己的 Markdown 文件完全替换 Gemini CLI 的内置系统提示:启用方式、变量替换与注意事项。
指导 Gemini CLI 的核心系统指令可以用你自己的 Markdown 文件完全替换,由 GEMINI_SYSTEM_MD 环境变量控制。该变量让 CLI 用外部 Markdown 文件作为系统提示,完全覆盖内置默认值。这是完全替换,不是合并:使用自定义文件时,原来的核心指令都不再适用,除非你自己把它们包含进来。这个功能面向需要强制严格的、项目特定行为或创建定制角色的高级用户。官方建议先把当前默认系统提示导出到文件,审阅后再有选择地修改或替换。
如何启用
可以在 shell 里临时设置环境变量,或通过 .gemini/.env 文件持久化:
- 使用项目默认路径(
.gemini/system.md):GEMINI_SYSTEM_MD=true或GEMINI_SYSTEM_MD=1,CLI 读取./.gemini/system.md(相对于当前项目目录) - 使用自定义文件路径:
GEMINI_SYSTEM_MD=/absolute/path/to/my-system.md;也支持相对路径(相对于当前工作目录解析)和波浪号展开(如~/my-system.md) - 禁用覆盖(使用内置提示):
GEMINI_SYSTEM_MD=false或0,或取消设置该变量
覆盖已启用但目标文件不存在时,CLI 会报错:missing system prompt file '<path>'。
快速示例
- 用项目文件做一次性会话:
GEMINI_SYSTEM_MD=1 gemini - 用
.gemini/.env为项目持久化:创建.gemini/system.md,然后在.gemini/.env里加GEMINI_SYSTEM_MD=1 - 使用主目录下的自定义文件:
GEMINI_SYSTEM_MD=~/prompts/system.md gemini
界面标识
GEMINI_SYSTEM_MD 生效时,CLI 会在界面里显示 |⌐■_■| 标识,提示处于自定义系统提示模式。
变量替换
使用自定义系统提示文件时,可以用这些变量动态包含内置内容:${AgentSkills}(注入所有可用 agent skills 的完整一节,含标题)、${SubAgents}(注入可用子智能体的完整一节,含标题);官方文档还列出其他可用变量,以官方原文为准。