首页 › LLM大语言模型 › Kimi专栏 › Kimi 入门&基础配置 › 环境变量

环境变量

Kimi Code CLI 通过环境变量控制少数运行时行为——迁移数据目录、关闭遥测、不改配置文件临时切换模型。​

重要:API 密钥不在这里配置​

KIMI_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY 等密钥变量不会从 shell 环境变量自动读取。在终端里 export KIMI_API_KEY=xxx 不会让任何供应商获得密钥——必须写在 config.toml 的 [providers.] 段或 [providers..env] 子表里。​

唯一的例外是 KIMI_MODEL_* 系列,它是一个显式通道,确实会从 shell 读取凭证——详见用环境变量定义模型。​

背景说明见配置覆盖:供应商凭证。​

核心路径​

KIMI_CODE_HOME​

覆盖数据根目录,默认 ~/.kimi-code。设置后,配置文件、会话、日志、OAuth 凭据等全部数据都落到新路径下:​

​

代码块​

Plain Text

export KIMI_CODE_HOME="/path/to/custom/kimi-code"​

​

​

确保目录可写。多个 kimi 实例共用同一个 KIMI_CODE_HOME 会共享配置和凭证。​

​

数据目录的完整结构见数据路径。​

KIMI_DISABLE_TELEMETRY​

设为 1 关闭匿名遥测上报(也接受 true/yes/y,不区分大小写):​

​

代码块​

Plain Text

export KIMI_DISABLE_TELEMETRY=1​

​

KIMI_MODEL_* 系列​

不修改 config.toml 临时切换模型——设置 KIMI_MODEL_NAME 后,CLI 在内存里合成一个临时供应商,重启后失效。详见用环境变量定义模型。​

供应商凭证键(写在 config.toml 里)​

下面这些键名不是直接从 shell 读取的——它们是写在 config.toml 的 [providers..env] 子表里、作为 api_key / base_url 备用来源的键名。CLI 只从配置文件读取,不从 process.env 读取。​

这样设计是为了让你保留熟悉的键名写法,同时把密钥放在配置文件里统一管理:​

​

代码块​

Plain Text

[providers.kimi.env]KIMI_API_KEY = "sk-xxx"KIMI_BASE_URL = "https://api.moonshot.ai/v1"​

​

各供应商对应的键名:​

​

#eeNNiwDZbwTt text { white-space: pre; }#eeNNiwDZbwTt .fb0 { stroke: var(--N900-FG, 0.15); }#eeNNiwDZbwTt .fb0 {stroke: rgba(31,35,41, 0.15)}#eeNNiwDZbwTt .fx0 { stroke-miterlimit: 10; }#eeNNiwDZbwTt .fx0 {stroke-miterlimit: 10}#eeNNiwDZbwTt .fa1 { fill: rgb(187, 191, 196); }#eeNNiwDZbwTt .fa1 {fill: rgb(187, 191, 196)}#eeNNiwDZbwTt .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"; }#eeNNiwDZbwTt .fx1 {font-style: normal}#eeNNiwDZbwTt .fx2 { text-anchor: middle; }#eeNNiwDZbwTt .fx2 {text-anchor: middle}#eeNNiwDZbwTt .fx3 { dominant-baseline: central; }#eeNNiwDZbwTt .fx3 {dominant-baseline: central}#eeNNiwDZbwTt .fx4 { stroke: none; }#eeNNiwDZbwTt .fx4 {stroke: none}#eeNNiwDZbwTt .fc0 { fill: var(--text-caption); }#eeNNiwDZbwTt .fc0 {fill: #646a73}#eeNNiwDZbwTt .fa2 { fill: var(--text-link-disabled); }#eeNNiwDZbwTt .fa2 {fill: rgb(187, 191, 196)}#eeNNiwDZbwTt .fa3 { fill: rgb(246, 246, 247); }#eeNNiwDZbwTt .fa3 {fill: rgb(246, 246, 247)}#eeNNiwDZbwTt .fc1 { stroke: var(--B500); }#eeNNiwDZbwTt .fc1 {stroke: #336df4}#eeNNiwDZbwTt .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"; }#eeNNiwDZbwTt .fx5 {font-style: normal}#eeNNiwDZbwTt .fx6 { text-anchor: start; }#eeNNiwDZbwTt .fx6 {text-anchor: start}#eeNNiwDZbwTt .fx7 { dominant-baseline: alphabetic; }#eeNNiwDZbwTt .fx7 {dominant-baseline: alphabetic}#eeNNiwDZbwTt .fc2 { fill: rgb(103, 103, 108); }#eeNNiwDZbwTt .fc2 {fill: rgb(103, 103, 108)}#eeNNiwDZbwTt .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; }#eeNNiwDZbwTt .fx8 {font-style: normal}#eeNNiwDZbwTt .fc3 { fill: rgb(52, 81, 178); }#eeNNiwDZbwTt .fc3 {fill: rgb(52, 81, 178)}#eeNNiwDZbwTt .fc4 { fill: rgb(60, 60, 67); }#eeNNiwDZbwTt .fc4 {fill: rgb(60, 60, 67)}#eeNNiwDZbwTt .fx9 { font: 400 12px ui-monospace; }#eeNNiwDZbwTt .fx9 {font-style: normal}#eeNNiwDZbwTt .fc5 { fill: var(--B500); }#eeNNiwDZbwTt .fc5 {fill: #336df4}#eeNNiwDZbwTt .fb1 { fill: var(--N900-FG, 0.15); }#eeNNiwDZbwTt .fb1 {fill: rgba(31,35,41, 0.15)}#eeNNiwDZbwTt .fb2 { fill: rgb(226, 226, 227); }#eeNNiwDZbwTt .fb2 {fill: rgb(226, 226, 227)}#eeNNiwDZbwTt .fa4 { fill: var(--bg-body); }#eeNNiwDZbwTt .fa4 {fill: #fff}ABC1234567891011键名适用供应商默认值KIMI_API_KEYKIMI_BASE_URLANTHROPIC_API_KEYANTHROPIC_BASE_URLOPENAI_API_KEYOPENAI_BASE_URLGOOGLE_API_KEYVERTEXAI_API_KEYGOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATIONopenaiopenai_responsesopenaiopenai_responsesKimi / MoonshotKimi / MoonshotAnthropicAnthropicOpenAI( 和 )OpenAI( 和 )Google GenAI、Vertex AIVertex AIVertex AIVertex AI无无Anthropic SDK 默认值无无无无无https://api.moonshot.ai/v1https://api.openai.com/v1

​

WARNING​

GOOGLE_APPLICATION_CREDENTIALS(服务账号 JSON 路径)是唯一走系统环境变量的例外——它由 Google SDK 自身通过 ADC 流程读取,CLI 不参与。其他所有键名都必须写在 [providers..env] 子表里。​

供应商类型与字段的完整说明见平台与模型。​

OAuth 与托管端点​

这组变量用于将 OAuth 认证和托管服务端点指向自建或测试环境,日常使用不需要设置。​

​

#XnFEoCiJTciy text { white-space: pre; }#XnFEoCiJTciy .fb0 { stroke: var(--N900-FG, 0.15); }#XnFEoCiJTciy .fb0 {stroke: rgba(31,35,41, 0.15)}#XnFEoCiJTciy .fx0 { stroke-miterlimit: 10; }#XnFEoCiJTciy .fx0 {stroke-miterlimit: 10}#XnFEoCiJTciy .fa1 { fill: rgb(187, 191, 196); }#XnFEoCiJTciy .fa1 {fill: rgb(187, 191, 196)}#XnFEoCiJTciy .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"; }#XnFEoCiJTciy .fx1 {font-style: normal}#XnFEoCiJTciy .fx2 { text-anchor: middle; }#XnFEoCiJTciy .fx2 {text-anchor: middle}#XnFEoCiJTciy .fx3 { dominant-baseline: central; }#XnFEoCiJTciy .fx3 {dominant-baseline: central}#XnFEoCiJTciy .fx4 { stroke: none; }#XnFEoCiJTciy .fx4 {stroke: none}#XnFEoCiJTciy .fc0 { fill: var(--text-caption); }#XnFEoCiJTciy .fc0 {fill: #646a73}#XnFEoCiJTciy .fa2 { fill: var(--text-link-disabled); }#XnFEoCiJTciy .fa2 {fill: rgb(187, 191, 196)}#XnFEoCiJTciy .fa3 { fill: rgb(246, 246, 247); }#XnFEoCiJTciy .fa3 {fill: rgb(246, 246, 247)}#XnFEoCiJTciy .fc1 { stroke: var(--B500); }#XnFEoCiJTciy .fc1 {stroke: #336df4}#XnFEoCiJTciy .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"; }#XnFEoCiJTciy .fx5 {font-style: normal}#XnFEoCiJTciy .fx6 { text-anchor: start; }#XnFEoCiJTciy .fx6 {text-anchor: start}#XnFEoCiJTciy .fx7 { dominant-baseline: alphabetic; }#XnFEoCiJTciy .fx7 {dominant-baseline: alphabetic}#XnFEoCiJTciy .fc2 { fill: rgb(103, 103, 108); }#XnFEoCiJTciy .fc2 {fill: rgb(103, 103, 108)}#XnFEoCiJTciy .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; }#XnFEoCiJTciy .fx8 {font-style: normal}#XnFEoCiJTciy .fc3 { fill: rgb(52, 81, 178); }#XnFEoCiJTciy .fc3 {fill: rgb(52, 81, 178)}#XnFEoCiJTciy .fc4 { fill: rgb(60, 60, 67); }#XnFEoCiJTciy .fc4 {fill: rgb(60, 60, 67)}#XnFEoCiJTciy .fc5 { fill: var(--B500); }#XnFEoCiJTciy .fc5 {fill: #336df4}#XnFEoCiJTciy .fx9 { font: 400 12px ui-monospace; }#XnFEoCiJTciy .fx9 {font-style: normal}#XnFEoCiJTciy .fb1 { fill: var(--N900-FG, 0.15); }#XnFEoCiJTciy .fb1 {fill: rgba(31,35,41, 0.15)}#XnFEoCiJTciy .fb2 { fill: rgb(226, 226, 227); }#XnFEoCiJTciy .fb2 {fill: rgb(226, 226, 227)}#XnFEoCiJTciy .fa4 { fill: var(--bg-body); }#XnFEoCiJTciy .fa4 {fill: #fff}ABC1234环境变量用途默认值KIMI_CODE_OAUTH_HOSTKIMI_OAUTH_HOSTKIMI_CODE_BASE_URLKIMI_OAUTH_HOSTOAuth 认证 host,优先级最高OAuth 认证 host,作为上一个的 fallbackOAuth 登录后的托管 API base URL未设时回退到 未设时使用 https://auth.kimi.comhttps://api.kimi.com/coding/v1

​

WARNING​

KIMI_CODE_BASE_URL(OAuth 托管服务,指向 kimi.com)和 KIMI_BASE_URL(API 密钥直连,指向 moonshot.ai)是两个不同的变量,请按场景区分。​

用环境变量定义模型(KIMI_MODEL_*)​

测试时想换个模型但不想动 config.toml?设置 KIMI_MODEL_NAME 后,CLI 会从 KIMI_MODEL_* 系列变量在内存里合成出一个临时供应商和模型别名,不写回配置文件。优先级高于 config.toml 的 default_model,但低于启动时 -m 选项。​

​

代码块​

Plain Text

export KIMI_MODEL_NAME="kimi-for-coding"export KIMI_MODEL_API_KEY="YOUR_API_KEY"export KIMI_MODEL_BASE_URL="https://api.example.com/v1"export KIMI_MODEL_MAX_CONTEXT_SIZE="262144"export KIMI_MODEL_CAPABILITIES="image_in,thinking"kimi​

​

完整变量列表:​

​

#JZXIOCTnTDPH text { white-space: pre; }#JZXIOCTnTDPH .fb0 { stroke: var(--N900-FG, 0.15); }#JZXIOCTnTDPH .fb0 {stroke: rgba(31,35,41, 0.15)}#JZXIOCTnTDPH .fx0 { stroke-miterlimit: 10; }#JZXIOCTnTDPH .fx0 {stroke-miterlimit: 10}#JZXIOCTnTDPH .fa1 { fill: rgb(187, 191, 196); }#JZXIOCTnTDPH .fa1 {fill: rgb(187, 191, 196)}#JZXIOCTnTDPH .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"; }#JZXIOCTnTDPH .fx1 {font-style: normal}#JZXIOCTnTDPH .fx2 { text-anchor: middle; }#JZXIOCTnTDPH .fx2 {text-anchor: middle}#JZXIOCTnTDPH .fx3 { dominant-baseline: central; }#JZXIOCTnTDPH .fx3 {dominant-baseline: central}#JZXIOCTnTDPH .fx4 { stroke: none; }#JZXIOCTnTDPH .fx4 {stroke: none}#JZXIOCTnTDPH .fc0 { fill: var(--text-caption); }#JZXIOCTnTDPH .fc0 {fill: #646a73}#JZXIOCTnTDPH .fa2 { fill: var(--text-link-disabled); }#JZXIOCTnTDPH .fa2 {fill: rgb(187, 191, 196)}#JZXIOCTnTDPH .fa3 { fill: rgb(246, 246, 247); }#JZXIOCTnTDPH .fa3 {fill: rgb(246, 246, 247)}#JZXIOCTnTDPH .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"; }#JZXIOCTnTDPH .fx5 {font-style: normal}#JZXIOCTnTDPH .fx6 { text-anchor: start; }#JZXIOCTnTDPH .fx6 {text-anchor: start}#JZXIOCTnTDPH .fx7 { dominant-baseline: alphabetic; }#JZXIOCTnTDPH .fx7 {dominant-baseline: alphabetic}#JZXIOCTnTDPH .fc1 { fill: rgb(103, 103, 108); }#JZXIOCTnTDPH .fc1 {fill: rgb(103, 103, 108)}#JZXIOCTnTDPH .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; }#JZXIOCTnTDPH .fx8 {font-style: normal}#JZXIOCTnTDPH .fc2 { fill: rgb(52, 81, 178); }#JZXIOCTnTDPH .fc2 {fill: rgb(52, 81, 178)}#JZXIOCTnTDPH .fc3 { fill: rgb(60, 60, 67); }#JZXIOCTnTDPH .fc3 {fill: rgb(60, 60, 67)}#JZXIOCTnTDPH .fb1 { fill: var(--N900-FG, 0.15); }#JZXIOCTnTDPH .fb1 {fill: rgba(31,35,41, 0.15)}#JZXIOCTnTDPH .fb2 { fill: rgb(226, 226, 227); }#JZXIOCTnTDPH .fb2 {fill: rgb(226, 226, 227)}#JZXIOCTnTDPH .fa4 { fill: var(--bg-body); }#JZXIOCTnTDPH .fa4 {fill: #fff}ABCD123456789101112环境变量必填用途默认值KIMI_MODEL_NAMEKIMI_MODEL_API_KEYKIMI_MODEL_PROVIDER_TYPEKIMI_MODEL_BASE_URLKIMI_MODEL_MAX_CONTEXT_SIZEKIMI_MODEL_CAPABILITIESKIMI_MODEL_DISPLAY_NAMEKIMI_MODEL_MAX_OUTPUT_SIZEKIMI_MODEL_REASONING_KEYKIMI_MODEL_THINKING_EFFORTKIMI_MODEL_ADAPTIVE_THINKINGkimianthropicopenai/modelanthropicopenailowmediumhighxhighmaxanthropickimi262144image_in,thinkingKIMI_MODEL_NAME是(同时是启用开关)是否否否否否否否否否发送给 API 的模型 IDAPI 密钥供应商类型:、、API 基础 URL最大上下文长度(token 数)逗号分隔的能力标签,与自动探测的能力取并集在 中显示的名称单次输出上限(仅 );设置后会覆盖内置的 Claude 上限推理字段名覆盖(仅 )Thinking 强度:////强制开启或关闭 adaptive thinking(仅 )——各类型有各自默认值(256K)回退到 模型默认值自动探测—按模型名推断

​

设置了 KIMI_MODEL_NAME 但缺少必填变量时,启动会立即失败并给出明确提示。​

运行时开关​

控制遥测、后台任务、plugin marketplace 等子系统行为的开关变量:​

​

​

诊断日志​

这组变量控制日志级别和文件滚动,进程启动时读取一次:​

​

​

系统环境变量​

CLI 还会读取一些标准系统变量来检测运行环境,不会修改它们:​

•

HOME:解析默认数据路径​

•

VISUAL、EDITOR:外部编辑器命令(VISUAL 优先)​

•

PATH:定位 rg、fd、fdfind、git 等依赖;在 Windows 上,Git Bash 探测会检查 PATH 中找到的每个 git.exe,包括 Scoop 等包管理器提供的 shim​

•

NO_COLOR、FORCE_COLOR:控制颜色输出(遵循 no-color.org 约定)​

•

CI:非空且非 "0" 时关闭主题检测,回退深色主题​

•

TERM_PROGRAM、TERM、TMUX:检测终端特性和通知支持​

•

DISPLAY、WAYLAND_DISPLAY、XDG_SESSION_TYPE:检测 Linux 图形会话(用于剪贴板和图片功能)​

•

WSL_DISTRO_NAME、WSLENV:检测 WSL,用于剪贴板 PowerShell 桥接​

•

LOCALAPPDATA:Windows 上探测 Git Bash 安装路径时作为 fallback 使用​

HTTP 代理​

Kimi Code 会遵循标准代理环境变量,让所有出网流量——模型 API 调用、MCP 服务、网络工具、遥测、登录、更新检查——都走代理:​

•

HTTP_PROXY / http_proxy:用于 http:// 请求的代理​

•

HTTPS_PROXY / https_proxy:用于 https:// 请求的代理​

•

ALL_PROXY / all_proxy:当对应 scheme 的变量未设置时使用的兜底代理;SOCKS 代理通常设在这里​

•

NO_PROXY / no_proxy:以逗号分隔的、绕过代理的主机列表​

同时支持 HTTP(S) 代理和 SOCKS 代理。SOCKS 代理通过 scheme 识别——socks5://、socks5h://、socks4:// 或 socks://(socks5:// 的别名)——通常设在 ALL_PROXY(Clash、V2RayN 等工具使用的形式)。对 HTTP/HTTPS 流量,HTTP(S) 代理优先于 ALL_PROXY。​

仅当设置了其中任一变量时才启用代理,否则直连。回环地址(localhost、127.0.0.1、::1)始终绕过代理,因此配置了代理后,本地服务(例如 localhost 上的 MCP 服务)仍能正常工作——你也可以把自己的内网主机加入 NO_PROXY 一并放行。​

以 Node 子进程运行的 stdio MCP 服务,在其 Node 版本支持 NODE_USE_ENV_PROXY 时(Node ≥ 22.21 或 ≥ 24.5)会自动遵循 HTTP_PROXY / HTTPS_PROXY / NO_PROXY;SOCKS 代理仅作用于 Kimi Code 自身的流量。​