Skip to content

环境变量 ​

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

重要:这里的键名只用于凭证存储与 env 子表

MIRRI_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY 等密钥变量不会从 shell 环境读取——引擎只使用显式配置的凭证。凭证只有两个来源:UI 管理的凭证存储(设置 → 供应商),以及 config.toml 里的 [providers.<name>.env] 子表——下面的键名就是各供应商类型在 env 子表里期望的写法。如果你之前依赖 shell 里的 export ANTHROPIC_API_KEY=xxx,请把密钥迁移进子表:

toml
[providers.anthropic.env]
ANTHROPIC_API_KEY = "YOUR_API_KEY"

MIRRICODE_MODEL_* 系列是另一条显式通道,仍然从 shell 读取凭证——详见用环境变量定义模型。

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

核心路径 ​

MIRRICODE_HOME ​

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

sh
export MIRRICODE_HOME="/path/to/custom/mirri-code"

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

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

MIRRICODE_DISABLE_TELEMETRY ​

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

sh
export MIRRICODE_DISABLE_TELEMETRY=1

MIRRICODE_MODEL_* 系列 ​

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

供应商凭证键 ​

下面这些键名是各供应商类型在 config.toml 的 [providers.<name>.env] 子表里期望的凭证键名——引擎解析的显式配置层(凭证存储之外)。它们不会从 shell 环境读取:惯用命名的导出变量(如 MIRRI_API_KEY)只有写进子表才会生效:

toml
[providers.kimi.env]
MIRRI_API_KEY = "sk-xxx"
MIRRI_BASE_URL = "https://api.mirricode.com/coding/v1"

各供应商对应的键名:

键名适用供应商默认值
MIRRI_API_KEYKimi / Mirri无
MIRRI_BASE_URLKimi / Mirrihttps://api.mirricode.com/coding/v1
ANTHROPIC_API_KEYAnthropic无
ANTHROPIC_BASE_URLAnthropichttps://api.anthropic.com/v1
OPENAI_API_KEYOpenAI(openai 和 openai_responses)无
OPENAI_BASE_URLOpenAI(openai 和 openai_responses)https://api.openai.com/v1
GOOGLE_API_KEYGoogle GenAI无
GOOGLE_GEMINI_BASE_URLGoogle GenAIhttps://generativelanguage.googleapis.com/v1beta

WARNING

vertexai 仅 TypeScript 引擎支持——rust 引擎在建立连接时会拒绝它。GOOGLE_APPLICATION_CREDENTIALS(服务账号 JSON 路径)是唯一走系统环境变量的例外——它由 Google SDK 自身通过 ADC 流程读取,CLI 不参与。其他所有键名只通过 [providers.<name>.env] 子表生效(凭证存储是另一层)。

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

OAuth 与托管端点 ​

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

环境变量用途默认值
MIRRICODE_OAUTH_HOSTOAuth 认证 host,优先级最高未设时回退到 KIMI_OAUTH_HOST
KIMI_OAUTH_HOSTOAuth 认证 host,作为上一个的 fallback未设时使用 https://auth.kimi.com
MIRRICODE_BASE_URLMirri Code 服务的托管 API base URLhttps://api.kimi.com/coding/v1

注意

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

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

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

sh
export MIRRICODE_MODEL_NAME="kimi-for-coding"
export MIRRICODE_MODEL_API_KEY="YOUR_API_KEY"
export MIRRICODE_MODEL_BASE_URL="https://api.example.com/v1"
export MIRRICODE_MODEL_MAX_CONTEXT_SIZE="262144"
export MIRRICODE_MODEL_CAPABILITIES="image_in,thinking"
mirri

完整变量列表:

环境变量必填用途默认值
MIRRICODE_MODEL_NAME是(同时是启用开关)发送给 API 的模型 ID—
MIRRICODE_MODEL_API_KEY是API 密钥—
MIRRICODE_MODEL_PROVIDER_TYPE否供应商类型:kimi、anthropic、openaikimi
MIRRICODE_MODEL_BASE_URL否API 基础 URL各类型有各自默认值
MIRRICODE_MODEL_MAX_CONTEXT_SIZE否最大上下文长度(token 数)262144(256K)
MIRRICODE_MODEL_CAPABILITIES否逗号分隔的能力标签,与自动探测的能力取并集image_in,thinking
MIRRICODE_MODEL_DISPLAY_NAME否在 /model 中显示的名称回退到 MIRRICODE_MODEL_NAME
MIRRICODE_MODEL_MAX_OUTPUT_SIZE否单次输出上限(仅 anthropic);设置后会覆盖内置的 Claude 上限模型默认值
MIRRICODE_MODEL_REASONING_KEY否推理字段名覆盖(仅 openai)自动探测
MIRRICODE_MODEL_THINKING_EFFORT否Thinking 强度:low/medium/high/xhigh/max—
MIRRICODE_MODEL_ADAPTIVE_THINKING否强制开启或关闭 adaptive thinking(仅 anthropic)按模型名推断

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

运行时开关 ​

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

环境变量用途合法值
MIRRICODE_DISABLE_TELEMETRY关闭匿名遥测上报1、true、yes、y(不区分大小写)
MIRRICODE_BACKGROUND_KEEP_ALIVE_ON_EXIT会话关闭时是否保留后台任务,优先级高于 config.toml。默认会在退出时停止后台任务真值:1/true/yes/on;假值:0/false/no/off
MIRRICODE_PLUGIN_MARKETPLACE_URL覆盖 /plugins 加载的 plugin marketplace JSON,适合 dev loopback server、测试 CDN 文件或替换 marketplace 目录https://mirricode.com/plugins/marketplace.json;也接受 http://、file:// URL 和本地路径
MIRRICODE_AGENT_SWARM_MAX_CONCURRENCY限制 AgentSwarm 初始提升并发阶段可同时运行的子 Agent 数量;不设置表示不限制正整数;非法值会立即失败
MIRRICODE_EXPERIMENTAL_FLAG在当前进程启用所有已注册的实验功能1、true、yes、on
MIRRICODE_RUST_ENGINE切换到 Rust 引擎:TUI 走 Rust 嵌入引擎,mirri web 启动 Rust 服务二进制,mirri acp 启动 Rust ACP 二进制。未设置时使用默认引擎任意真值,如 1
MIRRICODE_SHELL_PATHWindows 上覆盖终端池与 Shell 工具所用的 Shell(Bash 工具须指向 bash 家族的 exe,PowerShell 工具须指向 pwsh/powershell)绝对路径
MIRRICODE_MODEL_MAX_COMPLETION_TOKENS单步 LLM 请求的 max_completion_tokens 硬上限,仅对 kimi 供应商生效正整数;0 或负数禁用 clamp
MIRRICODE_MODEL_TEMPERATURE每次请求的采样温度,仅对 kimi 供应商生效(全局生效,不依赖 MIRRICODE_MODEL_NAME)数字,如 0.3
MIRRICODE_MODEL_TOP_P每次请求的核采样 top_p,仅对 kimi 供应商生效(全局生效)数字,如 0.95
MIRRICODE_MODEL_THINKING_EFFORT在线上强制使用指定的思考强度(thinking.effort),绕过模型声明的 support_efforts;仅对 kimi 供应商生效,且仅在 Thinking 开启时注入思考强度值,如 max
MIRRICODE_MODEL_THINKING_KEEP保留思考透传;在 kimi 上以 thinking.keep 发送,在 anthropic(Claude 以及 Mirri 的 Anthropic 兼容模式)上以 context_management 的 clear_thinking_20251015 编辑发送(开启 keep 会让 Anthropic 请求走 beta Messages API);覆盖 [thinking] keep(其默认值为 "all");仅在 Thinking 开启时注入API 接受的值,如 all;传入关值(false/0/no/off/none/null)可禁用
MIRRICODE_NO_AUTO_UPDATE完全禁用更新预检——不检查、不后台安装、不提示。同时兼容旧名 MIRRICODE_CLI_NO_AUTO_UPDATE真值:1/true/yes/on
MIRRICODE_DISABLE_CRON禁用定时任务工具(SetTimer 与 CreateScheduledTask 拒绝新计划,已有任务不触发)1 表示禁用

诊断日志 ​

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

环境变量用途默认值
MIRRICODE_LOG_LEVEL日志级别:off、error、warn、info、debuginfo
MIRRICODE_LOG_GLOBAL_MAX_BYTES全局日志文件单个最大字节数6291456(6 MB)
MIRRICODE_LOG_GLOBAL_FILES全局日志文件保留份数5
MIRRICODE_LOG_SESSION_MAX_BYTES会话级日志文件单个最大字节数5242880(5 MB)
MIRRICODE_LOG_SESSION_FILES会话级日志文件保留份数3

系统环境变量 ​

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 代理 ​

Mirri 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 代理仅作用于 Mirri Code 自身的流量。

下一步 ​