Gemini CLI 扩展
工作原理
Gemini CLI 支持用于配置和扩展其功能的扩展。
在启动时,Gemini CLI 会在两个位置查找扩展:
<workspace>/.gemini/extensions
<home>/.gemini/extensions
Gemini CLI 会加载两个位置的所有扩展。如果同名扩展同时存在于两个位置,则工作区目录中的扩展优先。
每个扩展都以一个目录的形式存在,其中包含一个 gemini-extension.json
文件。例如:
<workspace>/.gemini/extensions/my-extension/gemini-extension.json
gemini-extension.json
文件
gemini-extension.json
文件包含扩展的配置。该文件具有以下结构:
{
"name": "my-extension",
"version": "1.0.0",
"mcpServers": {
"my-server": {
"command": "node my-server.js"
}
},
"contextFileName": "GEMINI.md",
"excludeTools": ["run_shell_command"]
}
配置项说明
name
: 扩展的名称。用于唯一标识扩展,应与扩展目录的名称匹配。version
: 扩展的版本。mcpServers
: 要配置的 MCP 服务器映射。键是服务器名称,值是服务器配置。这些服务器的加载方式与在settings.json
文件中配置的 MCP 服务器相同。如果扩展和settings.json
文件都配置了同名 MCP 服务器,则settings.json
文件中的定义优先。contextFileName
: 包含扩展上下文的文件名。用于从工作区加载上下文。如果未使用此属性,但扩展目录中存在GEMINI.md
文件,则将加载该文件。excludeTools
: 要从模型中排除的工具名称数组。您还可以为支持它的工具指定特定于命令的限制,例如run_shell_command
工具。例如,"excludeTools": ["run_shell_command(rm -rf)"]
将阻止rm -rf
命令。
配置合并
当 Gemini CLI 启动时,它会加载所有扩展并合并它们的配置。如果存在任何冲突,工作区配置优先。
优先级规则:
settings.json
中的配置- 工作区 (
<workspace>/.gemini/extensions
) 中的扩展 - 用户主目录 (
<home>/.gemini/extensions
) 中的扩展