Appearance
Gemini CLI 提供 17 款内置主题(10 款暗色、7 款亮色),用 /theme 命令交互式选择;还支持在 settings.json 的 customThemes 块中完全自定义配色,覆盖背景、文字、边框、状态色等所有 UI 元素。也可以从 JSON 文件加载主题,方便团队共享配色方案。
主题定制
Gemini CLI 支持丰富的主题定制,从内置的经典配色方案到完全自定义的颜色调板,让终端界面更符合你的偏好。
切换主题
交互式选择
在 CLI 中输入:
/theme出现主题选择对话框,用方向键浏览,选中后按 Enter 确认。选择的主题会自动保存,下次启动仍然生效。
注意:如果
settings.json中已通过"theme"字段设置了主题,需要先从配置文件中删除该字段,才能用/theme命令切换。
通过配置文件设置
在 settings.json 的 ui 对象中设置:
json
{
"ui": {
"theme": "Dracula"
}
}内置主题列表
暗色主题
| 主题名 | 特点 |
|---|---|
Default | Gemini 默认暗色方案 |
ANSI | 标准终端 ANSI 颜色 |
Atom One | 仿 Atom Editor 配色 |
Ayu | 简洁暖色系暗色主题 |
Dracula | 经典紫色系,开发者最爱 |
GitHub | 仿 GitHub 暗色模式 |
Holiday | 节日风格配色 |
Shades Of Purple | 紫色渐变系 |
Solarized Dark | Solarized 经典暗色 |
Tokyo Night | 东京夜景风格,蓝紫色系 |
亮色主题
| 主题名 | 特点 |
|---|---|
Default Light | Gemini 默认亮色方案 |
ANSI Light | 标准终端亮色 |
Ayu Light | 暖白色系 |
GitHub Light | 仿 GitHub 亮色模式 |
Google Code | Google 代码风格 |
Solarized Light | Solarized 经典亮色 |
Xcode | 仿 Xcode 编辑器 |
自定义配色方案
在 settings.json 中定义
在 settings.json 的 ui.customThemes 块中创建自定义主题:
json
{
"ui": {
"customThemes": {
"MyTheme": {
"name": "MyTheme",
"type": "custom",
"background": {
"primary": "#181818",
"diff": {
"added": "#2b3312",
"removed": "#341212"
}
},
"text": {
"primary": "#f0f0f0",
"secondary": "#a0a0a0",
"link": "#83a598",
"accent": "#d3869b"
},
"border": {
"default": "#3c3836",
"focused": "#458588"
},
"status": {
"success": "#b8bb26",
"warning": "#fabd2f",
"error": "#fb4934"
},
"ui": {
"comment": "#928374",
"symbol": "#8ec07c",
"gradient": ["#cc241d", "#d65d0e", "#d79921"]
}
}
}
}
}必填字段:
name:与customThemes的键名一致type:固定为"custom"
颜色值支持 hex(#FF0000)或 CSS 颜色名称(coral、teal)。
配色对象说明
| 配置组 | 字段 | 说明 |
|---|---|---|
text | primary | 默认文字颜色 |
text | secondary | 次要文字(低调信息) |
text | link | 链接和 URL |
text | accent | 强调和高亮 |
text | response | AI 响应文字(优先于 primary) |
background | primary | 主背景色 |
background | diff.added | diff 新增行背景 |
background | diff.removed | diff 删除行背景 |
border | default | 标准边框 |
border | focused | 聚焦状态边框 |
status | success | 成功操作指示 |
status | warning | 警告指示 |
status | error | 错误指示 |
ui | comment | 代码注释颜色 |
ui | symbol | 代码符号和运算符 |
ui | gradient | 渐变效果颜色数组 |
从文件加载主题
可以把主题定义存在单独的 JSON 文件中,方便团队共享:
json
// settings.json
{
"ui": {
"theme": "/path/to/gruvbox-dark.json"
}
}主题文件格式与 customThemes 中的对象定义完全相同。
安全限制:只能加载 home 目录下的主题文件,防止加载来自不可信路径的恶意主题。
自动主题切换
Gemini CLI 可以根据终端背景色自动切换亮/暗主题:
json
{
"ui": {
"autoThemeSwitching": true
}
}启用后,当终端处于亮色模式时自动切换到亮色主题,反之切换暗色主题。
下一步
- 查看所有 UI 相关设置:settings.json 参考
- 通过 Extensions 安装更多社区主题:Extensions 文档
常见问题
Q: 自定义主题定义了多少字段才够用?
A: 建议至少提供 background.primary、text.primary、text.secondary,以及 text.link、text.accent 和 status 的颜色,确保 UI 显示协调。其他字段可以省略,缺省时会使用 Default 主题的对应颜色。
Q: 主题切换会影响 AI 的输出吗?
A: 不会。主题只影响 CLI 界面的视觉呈现,与 AI 模型的响应内容完全无关。
Q: 可以在不同项目使用不同主题吗?
A: 可以。在项目的 .gemini/settings.json 中设置 ui.theme 字段,会覆盖全局主题设置,该主题只在当前项目的会话中生效。