首页 › LLM大语言模型 › Kimi专栏 › Kimi 进阶 › 自定义主题

自定义主题

Kimi Code CLI 可以使用内置配色,也可以使用自定义 JSON 主题文件。自定义文件放在主题目录下,会和内置选项一起出现在 /theme 里。​

内置颜色 token​

自定义主题可以覆盖下面这些 token。dark 和 light 两列展示内置值;auto 会在启动时解析为其中一个调色板,如果无法检测终端背景,则回退到 dark。​

​

#xLVkrcKsmXAp text { white-space: pre; }#xLVkrcKsmXAp .fb0 { stroke: var(--N900-FG, 0.15); }#xLVkrcKsmXAp .fb0 {stroke: rgba(31,35,41, 0.15)}#xLVkrcKsmXAp .fx0 { stroke-miterlimit: 10; }#xLVkrcKsmXAp .fx0 {stroke-miterlimit: 10}#xLVkrcKsmXAp .fa1 { fill: rgb(187, 191, 196); }#xLVkrcKsmXAp .fa1 {fill: rgb(187, 191, 196)}#xLVkrcKsmXAp .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#xLVkrcKsmXAp .fx1 {font-style: normal}#xLVkrcKsmXAp .fx2 { text-anchor: middle; }#xLVkrcKsmXAp .fx2 {text-anchor: middle}#xLVkrcKsmXAp .fx3 { dominant-baseline: central; }#xLVkrcKsmXAp .fx3 {dominant-baseline: central}#xLVkrcKsmXAp .fx4 { stroke: none; }#xLVkrcKsmXAp .fx4 {stroke: none}#xLVkrcKsmXAp .fc0 { fill: var(--text-caption); }#xLVkrcKsmXAp .fc0 {fill: #646a73}#xLVkrcKsmXAp .fa2 { fill: var(--text-link-disabled); }#xLVkrcKsmXAp .fa2 {fill: rgb(187, 191, 196)}#xLVkrcKsmXAp .fa3 { fill: rgb(246, 246, 247); }#xLVkrcKsmXAp .fa3 {fill: rgb(246, 246, 247)}#xLVkrcKsmXAp .fx5 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#xLVkrcKsmXAp .fx5 {font-style: normal}#xLVkrcKsmXAp .fx6 { text-anchor: start; }#xLVkrcKsmXAp .fx6 {text-anchor: start}#xLVkrcKsmXAp .fx7 { dominant-baseline: alphabetic; }#xLVkrcKsmXAp .fx7 {dominant-baseline: alphabetic}#xLVkrcKsmXAp .fc1 { fill: rgb(103, 103, 108); }#xLVkrcKsmXAp .fc1 {fill: rgb(103, 103, 108)}#xLVkrcKsmXAp .fx8 { font: 400 12px LarkHackSafariFont, LarkEmojiFont, ui-monospace, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#xLVkrcKsmXAp .fx8 {font-style: normal}#xLVkrcKsmXAp .fc2 { fill: rgb(52, 81, 178); }#xLVkrcKsmXAp .fc2 {fill: rgb(52, 81, 178)}#xLVkrcKsmXAp .fc3 { fill: rgb(60, 60, 67); }#xLVkrcKsmXAp .fc3 {fill: rgb(60, 60, 67)}#xLVkrcKsmXAp .fb1 { fill: var(--N900-FG, 0.15); }#xLVkrcKsmXAp .fb1 {fill: rgba(31,35,41, 0.15)}#xLVkrcKsmXAp .fb2 { fill: rgb(226, 226, 227); }#xLVkrcKsmXAp .fb2 {fill: rgb(226, 226, 227)}#xLVkrcKsmXAp .fa4 { fill: var(--bg-body); }#xLVkrcKsmXAp .fa4 {fill: #fff}#xLVkrcKsmXAp .fa5 { fill: var(--ccmtoken-mindnote-highlightcolor-neutral); }#xLVkrcKsmXAp .fa5 {fill: #dee0e3}ABCD12345678910Token控制什么primaryaccenttexttextStrongtextDimtextMutedborderborderFocussuccessdark#4FA8FF#5BC0BE#E0E0E0#F5F5F5#888888#6B6B6B#5A5A5A#E8A838#4EC87Elight#1565C0#00838F#1A1A1A#1A1A1A#454545#5F5F5F#737373#92660A#0E7A38▶✓最常用色。链接、行内代码、几乎所有对话框的选中项、编辑器聚焦边框、Plan/运行中徽章、spinner次级强调。审批 前缀、设备码框、图片占位、BTW/队列面板、注册表导入正文。对话框正文、todo 标题、footer 模型名、Markdown 标题、助手/工具消息子弹头、列表符号加粗强调文字。输入类对话框、状态消息次级、变暗文字。思考、提示、描述、已完成 todo、Markdown 引用、footer 状态栏最浅文字。计数、滚动信息、描述、Markdown 链接 URL、代码块边框面板与编辑器的普通边框、Markdown 分隔线聚焦/注意边框,目前仅审批面板使用成功态。、已启用、完成

​

使用 custom-theme skill​

你不需要手写 JSON。运行内置 /custom-theme [附加文本] skill 命令进入自定义主题流程;这个 skill 可以帮你选颜色,把文件写到 ~/.kimi-code/themes/,校验十六进制色值,并告诉你如何应用。​

调用示例:​

•

/custom-theme Create a warm dark theme with amber accents.​

•

/custom-theme Make a light theme based on Solarized, but keep errors easy to see.​

•

/custom-theme Tweak my ember theme so diffs have higher contrast.​

激活后,skill 通常会先问你想用浅色还是深色基准、偏好的风格或调色板,以及是否有必须包含的精确颜色。如果你用它编辑已有主题,请确保它先读取并备份文件,再覆盖写入。​

创建一个主题​

在主题目录下新建一个 .json 文件即可。主题目录是:​

•

~/.kimi-code/themes/​

•

如果设置了 KIMI_CODE_HOME 环境变量,则是 $KIMI_CODE_HOME/themes/​

目录不存在就自己建一个。文件名就是主题名:ember.json 会在 /theme 里显示为 Custom: ember。​

一个最小的主题只需要写你想改的颜色,其余自动沿用基准调色板(默认是 dark):​

​

代码块​

Plain Text

{ "name": "ember", "colors": { "primary": "#83A598", "accent": "#FE8019" }}​

​

字段说明:​

•

name(必填):主题的标识名。​

•

displayName(可选):人类可读的名字。​

•

base(可选):未指定的 token 沿用哪个内置调色板——"dark"(默认)或 "light"。做浅色主题时设为 "base": "light",这样你没写的 token 在浅色背景上仍然可读(否则会回退到 dark 调色板)。​

•

colors(可选):要覆盖的颜色 token,值是 6 位十六进制色值(如 #FE8019)。​

使用 内置颜色 token 里的 token 名。没有写到的 token 会自动回退到所选基准调色板的对应值,所以你完全可以只覆盖一部分:​

​

代码块​

Plain Text

{ "name": "just-blue", "colors": { "primary": "#3B82F6", "roleUser": "#3B82F6" }}​

​

选用主题​

两种方式:​

/theme 命令(推荐):打开主题选择器,自定义主题会以 Custom: <文件名> 出现。选择器每次打开都会重新扫描主题目录,所以你新加的主题文件无需重启就能看到。​

tui.toml:把 theme 设成你的主题名:​

​

代码块​

Plain Text

# ~/.kimi-code/tui.tomltheme = "ember"​

​

出错时会怎样​

自定义主题的设计原则是"尽量别打断你":​

•

某个色值不合法(不是 # 加 6 位十六进制):静默跳过这一项,并回退到所选基准调色板,其余颜色照常生效。​

•

写了无法识别的 token:忽略,不影响其它颜色。​

•

自定义主题文件不存在或 JSON 损坏:静默回退到内置 dark 调色板,不会再尝试 auto。​

编辑正在使用的主题​

如果你修改的是当前正在生效的那个主题文件,改动不会自动重新加载。让新颜色生效有两种办法:​

•

运行 /reload-tui——它会重新读取 tui.toml 并重新应用当前主题(包括重新读取主题文件);​

•

或者在 /theme 里先切到另一个主题,再切回来。​

注意​

在 /theme 里重新选中同一个主题不会触发重载(只会提示 “Theme unchanged”)。要重载已激活主题的改动,用上面两种办法之一。​