配置覆盖
Kimi Code CLI 有三个地方可以影响运行参数:配置文件、命令行选项、环境变量。它们不是简单的"谁优先级高谁赢"——三者面向不同场景,作用范围互不相同:
•
配置文件 保存长期偏好(模型、密钥、循环控制等),每次启动都生效
•
命令行选项 做本次启动的临时切换,退出后失效
•
环境变量 主要负责数据目录定位、OAuth 端点切换,以及少数运行时开关——不是配置字段的通用后备来源
这个区别很关键:很多人会在 shell 里 export KIMI_API_KEY=xxx,以为 CLI 会自动取到,但实际上不会。原因见下文供应商凭证。
环境变量的三类作用
环境变量按作用分三类,不能合并成一条线性优先级:
定位配置文件:KIMI_CODE_HOME 决定数据根目录,配置文件路径因此变为 $KIMI_CODE_HOME/config.toml。这一步先于其他所有解析,不是普通参数的后备来源。
运行时开关:KIMI_DISABLE_TELEMETRY 等少量变量直接关闭对应子系统——即使 config.toml 里 telemetry = true,只要这个变量是真值,遥测就会被禁用。语义是"额外禁用",不是"普通覆盖"。
运行端点与诊断:KIMI_CODE_OAUTH_HOST、KIMI_CODE_BASE_URL、KIMI_LOG_LEVEL 等在 OAuth 或日志子系统初始化时读取。完整列表见环境变量。
普通运行参数的优先级
对模型别名、Plan 模式、yolo 模式、Skills 目录等普通运行参数,优先级从高到低:
命令行选项(-m、--plan、--yolo 等):仅对本次启动生效
用户配置文件(~/.kimi-code/config.toml):保存长期偏好
少数环境变量明确覆盖特定配置字段,例如 KIMI_CODE_BACKGROUND_KEEP_ALIVE_ON_EXIT 的优先级高于 [background].keep_alive_on_exit。这类例外在环境变量和配置文件对应字段里都有标注。
WARNING
普通运行参数不会从 shell 环境变量取后备值。 供应商的 api_key / base_url 只从 config.toml(包括 [providers.
目前 CLI 只读取一份用户级配置文件,没有项目级配置文件机制。需要在不同项目间隔离配置时,用 KIMI_CODE_HOME 指向不同的数据目录——见下文典型场景。
供应商凭证
供应商凭证(api_key、base_url)有独立的解析规则,不走普通参数的优先级链。
对单个供应商,凭证按以下顺序解析:
[providers.
[providers.
两者都缺 → 启动报错,提示该供应商缺少凭证
base_url 的解析方式相同:先读 [providers.
[providers.
完整的凭证键名列表见环境变量:供应商凭证键。
命令行选项
启动时传入的选项优先级最高,只对本次启动生效:
#FnAvhLfkVnqO text { white-space: pre; }#FnAvhLfkVnqO .fb0 { stroke: var(--N900-FG, 0.15); }#FnAvhLfkVnqO .fb0 {stroke: rgba(31,35,41, 0.15)}#FnAvhLfkVnqO .fx0 { stroke-miterlimit: 10; }#FnAvhLfkVnqO .fx0 {stroke-miterlimit: 10}#FnAvhLfkVnqO .fa1 { fill: rgb(187, 191, 196); }#FnAvhLfkVnqO .fa1 {fill: rgb(187, 191, 196)}#FnAvhLfkVnqO .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"; }#FnAvhLfkVnqO .fx1 {font-style: normal}#FnAvhLfkVnqO .fx2 { text-anchor: middle; }#FnAvhLfkVnqO .fx2 {text-anchor: middle}#FnAvhLfkVnqO .fx3 { dominant-baseline: central; }#FnAvhLfkVnqO .fx3 {dominant-baseline: central}#FnAvhLfkVnqO .fx4 { stroke: none; }#FnAvhLfkVnqO .fx4 {stroke: none}#FnAvhLfkVnqO .fc0 { fill: var(--text-caption); }#FnAvhLfkVnqO .fc0 {fill: #646a73}#FnAvhLfkVnqO .fa2 { fill: var(--text-link-disabled); }#FnAvhLfkVnqO .fa2 {fill: rgb(187, 191, 196)}#FnAvhLfkVnqO .fa3 { fill: rgb(246, 246, 247); }#FnAvhLfkVnqO .fa3 {fill: rgb(246, 246, 247)}#FnAvhLfkVnqO .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"; }#FnAvhLfkVnqO .fx5 {font-style: normal}#FnAvhLfkVnqO .fx6 { text-anchor: start; }#FnAvhLfkVnqO .fx6 {text-anchor: start}#FnAvhLfkVnqO .fx7 { dominant-baseline: alphabetic; }#FnAvhLfkVnqO .fx7 {dominant-baseline: alphabetic}#FnAvhLfkVnqO .fc1 { fill: rgb(103, 103, 108); }#FnAvhLfkVnqO .fc1 {fill: rgb(103, 103, 108)}#FnAvhLfkVnqO .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; }#FnAvhLfkVnqO .fx8 {font-style: normal}#FnAvhLfkVnqO .fc2 { fill: rgb(52, 81, 178); }#FnAvhLfkVnqO .fc2 {fill: rgb(52, 81, 178)}#FnAvhLfkVnqO .fc3 { fill: rgb(60, 60, 67); }#FnAvhLfkVnqO .fc3 {fill: rgb(60, 60, 67)}#FnAvhLfkVnqO .fb1 { fill: var(--N900-FG, 0.15); }#FnAvhLfkVnqO .fb1 {fill: rgba(31,35,41, 0.15)}#FnAvhLfkVnqO .fb2 { fill: rgb(226, 226, 227); }#FnAvhLfkVnqO .fb2 {fill: rgb(226, 226, 227)}#FnAvhLfkVnqO .fa4 { fill: var(--bg-body); }#FnAvhLfkVnqO .fa4 {fill: #fff}AB12345678910选项作用-S, --session [id]-c, --continue-y, --yolo--auto--plan-m, --model
互斥规则(违反时启动报错):
•
--output-format 只能配合 -p 使用
•
--prompt 不能同时用 --yolo 或 --plan
•
--continue 和 --session 不能同时用
•
非 prompt 模式下,--yolo 和 --plan 不能配合 --continue 或 --session
TIP
--skills-dir 是一次性替换,只影响本次启动。如需长期追加搜索目录,在 config.toml 里写 extra_skill_dirs(详见 Agent Skills)。
典型场景
隔离测试环境——用单独的数据目录,避免污染主配置和会话:
代码块
Plain Text
KIMI_CODE_HOME="$PWD/.kimi-sandbox" kimi
一次性使用测试密钥——由于供应商凭证只从配置文件读,把测试密钥写进 env 子表:
代码块
Plain Text
[providers.kimi.env]KIMI_API_KEY = "sk-test"
跳过审批运行批处理任务:
代码块
Plain Text
kimi --yolo -p "批量重命名以下文件..."
临时进入 Plan 模式(若想永久生效,在配置文件设 default_plan_mode = true):
代码块
Plain Text
kimi --plan