Appearance
Gemini CLI 的所有配置都存储在 ~/.gemini/settings.json(全局)或 项目/.gemini/settings.json(项目级)。本页是完整字段速查表,覆盖 General、UI、Output、MCP 服务器配置等所有选项。项目级配置会覆盖全局配置。
Gemini CLI 配置参考(settings.json)
配置文件位置
| 作用范围 | 文件路径 |
|---|---|
| 全局(所有项目) | ~/.gemini/settings.json |
| 项目级(当前项目) | 项目根目录/.gemini/settings.json |
项目级配置优先级更高,会覆盖全局配置中的同名字段。
修改配置的方式:
- 直接编辑文件
- 在 REPL 中使用
/settings命令(图形化设置面板)
General 通用配置
| 字段 | 默认值 | 说明 |
|---|---|---|
general.vimMode | false | 启用 Vim 键绑定 |
general.defaultApprovalMode | "default" | 默认工具审批模式:default / auto_edit / plan |
general.enableAutoUpdate | true | 启用自动更新 |
general.enableNotifications | false | 启用终端通知 |
general.notificationMethod | "auto" | 通知方式 |
general.plan.enabled | true | 启用 Plan Mode |
general.plan.directory | undefined | 计划文件存储目录(未设则用系统临时目录) |
general.plan.modelRouting | true | 规划阶段用 Pro 模型,执行阶段用 Flash |
general.retryFetchErrors | true | 遇到 fetch 报错时自动重试 |
general.maxAttempts | 10 | 主聊天模型的最大重试次数(上限 10) |
general.sessionRetention.enabled | true | 启用自动清理旧会话 |
general.sessionRetention.maxAge | "30d" | 保留会话时长(如 "7d"、"24h"、"1w") |
general.topicUpdateNarration | true | 减少啰嗦输出,启用结构化进度报告 |
UI 界面配置
| 字段 | 默认值 | 说明 |
|---|---|---|
ui.autoThemeSwitching | true | 根据终端背景色自动切换亮/暗主题 |
ui.hideWindowTitle | false | 隐藏窗口标题栏 |
ui.inlineThinkingMode | "off" | 显示模型思考过程:off / full |
ui.dynamicWindowTitle | true | 在终端标题栏显示状态图标(就绪/工作中/需操作) |
ui.showHomeDirectoryWarning | true | 在家目录运行时显示警告 |
ui.hideTips | false | 隐藏界面中的提示信息 |
ui.compactToolOutput | true | 紧凑模式显示工具输出(列目录、读文件等) |
ui.hideBanner | false | 隐藏启动 Banner |
ui.hideContextSummary | false | 隐藏输入框上方的上下文摘要 |
ui.hideFooter | false | 隐藏底部状态栏 |
ui.showLineNumbers | true | 在聊天中显示行号 |
ui.showUserIdentity | true | 显示已登录账号(邮箱)信息 |
ui.useAlternateBuffer | false | 使用交替屏幕缓冲区(保留 shell 历史) |
ui.escapePastedAtSymbols | false | 粘贴时自动转义 @ 符号,防止误触发文件引用 |
Output 输出配置
| 字段 | 默认值 | 说明 |
|---|---|---|
output.format | "text" | 输出格式:text / json |
MCP 服务器配置
在 settings.json 中添加 mcpServers 块来配置 MCP 服务器:
json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"my-http-service": {
"url": "http://localhost:3000/mcp",
"transport": "http"
}
}
}详见MCP 服务器接入。
实验性功能
json
{
"experimental": {
"autoMemory": true,
"worktrees": true
}
}| 字段 | 默认值 | 说明 |
|---|---|---|
experimental.autoMemory | false | 启用 Auto Memory 自动技能提取 |
experimental.worktrees | false | 启用 git worktree 支持(-w 参数) |
完整配置示例
json
{
"general": {
"defaultApprovalMode": "auto_edit",
"plan": {
"enabled": true,
"modelRouting": true
},
"sessionRetention": {
"maxAge": "14d"
}
},
"ui": {
"hideTips": true,
"hideBanner": true,
"compactToolOutput": true
},
"output": {
"format": "text"
},
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
},
"context": {
"fileName": ["GEMINI.md", "CLAUDE.md"]
}
}常见问题
Q: 修改 settings.json 后需要重启吗?
A: 大部分 UI 和 General 设置通过 /settings 实时生效;MCP 服务器配置需要 /mcp reload 或重启;实验性功能需要完全重启。
Q: auto_edit 和 default 审批模式有什么差别?
A: default 模式下每次工具调用(包括读文件、写文件、Shell 命令)都询问确认;auto_edit 自动批准文件读写操作,但 Shell 命令和危险操作仍需确认。
Q: 项目级 settings.json 是否应该提交到 git?
A: 建议提交(不含敏感信息的部分)。MCP 服务器配置中用 ${ENV_VAR} 引用环境变量,不会把 token 写入配置文件。团队共享配置有助于统一开发体验。