MiMo Code 的运行参数来自三处:用户配置文件、命令行选项、进程级环境变量。三者作用场景不同,环境变量并不是配置字段的通用后备来源,需要分类理解。CLI 可执行文件名是 mimo。
环境变量在 MiMo Code 里承担三类职责,互不交叉。完整变量表见环境变量。
MIMOCODE_HOME 决定 profile 根目录,MIMOCODE_CONFIG / MIMOCODE_CONFIG_DIR / MIMOCODE_CONFIG_CONTENT 直接指向配置来源,MIMOCODE_PERMISSION 内联注入 permission 段。MIMOCODE_DISABLE_* 与 MIMOCODE_ENABLE_* 系列控制某个能力是否启用,语义是"在配置之上额外开关"。例如 MIMOCODE_DISABLE_AUTOUPDATE 即便配置里写了 autoupdate: true 也会关闭自动更新。MIMOCODE_AUTH_CONTENT / MIMOCODE_CONSOLE_TOKEN / MIMOCODE_SERVER_PASSWORD 等供 CI 与服务模式注入凭证。非环境变量类参数的解析顺序是:命令行选项 > 配置文件。但有几点要先理清。
--model / --agent / --variant / --prompt / --continue 等)只作为本次 prompt 的运行参数,不写回 mimocode.json,下一次会话仍读配置文件中的值。--port / --hostname / --mdns / --mdns-domain / --cors)只有在命令行中真正传入时才覆盖 config.server.*。其中 --cors 是追加到配置 CORS 列表,不是替换。MIMOCODE_AUTO_SHARE=true 等价于 share: "auto",MIMOCODE_DISABLE_AUTOCOMPACT=true 等价于关闭 compaction.auto。这种"环境变量覆写配置字段"的情况是个例,参见各字段说明。
没有 --config 或 --config-file 这样的 flag。 要指定配置文件,只能通过 MIMOCODE_CONFIG 或 MIMOCODE_CONFIG_CONTENT。要切换整个 profile 根目录,用 MIMOCODE_HOME。
配置文件的位置由 MIMOCODE_HOME 控制;未设置时,全局配置默认在 $XDG_CONFIG_HOME/mimocode/(macOS 与 Linux 上等价于 ~/.config/mimocode/)。
MIMOCODE_HOME 必须是绝对路径(不接受 ~/ 前缀),否则启动直接报错。设置后下列四个基础目录整体迁移到该路径下:
文件名规则:
config.json / mimocode.json / mimocode.jsonc,按此顺序依次合并(后者覆盖前者)。mimocode.json / mimocode.jsonc,从当前目录向上查找到 worktree 根,父目录在前、当前目录在后逐层合并。其他名称(如 opencode.json)不会被加载。.mimocode/ 与 MIMOCODE_CONFIG_DIR 内同样使用 mimocode.json(c)。合并规则:
instructions 例外,去重拼接。plugin / mcp 同名条目后写者覆盖(与 deep merge 一致)。例外:Claude Code 兼容层向 mcp 注入 ~/.claude.json 的 mcpServers 时,若 mcp 中已有同名条目则跳过,避免覆盖用户显式配置。tools 字段会被翻译为派生的 permission 项,但用户显式写的 permission 优先。theme / keybinds / tui 在 mimocode.json 中被静默丢弃并提示迁移到 ~/.config/mimocode/tui.json。/Library/Managed Preferences/.../ai.opencode.managed.plist)在所有用户层配置(含 MIMOCODE_CONFIG_CONTENT)之上整段覆盖,普通用户无法绕过。字段定义见配置文件。
凭证(API key、OAuth token 等)不放在 mimocode.json 里,独立存放在 auth 文件:
$XDG_DATA_HOME/mimocode/auth.json 读取,权限 0o600;MIMOCODE_HOME 设置后随之迁移。MIMOCODE_AUTH_CONTENT 接收一整段 JSON 文本作为内联凭证,CI 场景用。MIMOCODE_MIMO_ONLY=true)下,不会从 shell 中读取 ANTHROPIC_API_KEY / OPENAI_API_KEY 等 provider 环境变量作为后备。仅 MIMOCODE_MIMO_ONLY=false 能恢复这种回退;单独设 MIMOCODE_DISABLE_PROVIDER_ENV=false 无效(mimo-only 为 true 时该 flag 永远为 true)。mimocode.json 而又不暴露在版本控制中,使用 {env:VAR} 或 {file:path} 占位符(见配置文件 · 变量替换)。进程级环境变量的实际作用集中在以下方向,与上文"三类作用"对应:
MIMOCODE_HOME / MIMOCODE_CONFIG / MIMOCODE_CONFIG_DIR / MIMOCODE_CONFIG_CONTENT / MIMOCODE_PERMISSION。MIMOCODE_DISABLE_* / MIMOCODE_ENABLE_* / MIMOCODE_PURE。MIMOCODE_AUTH_CONTENT / MIMOCODE_SERVER_PASSWORD / MIMOCODE_SERVER_USERNAME / MIMOCODE_CONSOLE_TOKEN / MIMOCODE_WORKSPACE_ID。MIMOCODE_SHOW_TTFD / MIMOCODE_AUTO_HEAP_SNAPSHOT 等,不建议常规使用。完整变量、默认值与语义见环境变量。
下表为最常用的全局选项;按子命令归类、仅与配置交互或改变本次运行行为的项。完整列表见命令行运行。
| 选项 | 适用子命令 | 作用 |
|---|---|---|
-m, --model <provider/model> | 根 / run | 本次会话使用的模型 |
--agent <name> | 根 / run | 本次会话使用的代理 |
--variant <name> | run | 推理强度(reasoning effort),自由字符串,常见值 high / max / minimal |
-c, --continue | 根 / run / attach | 继续上一次会话 |
-s, --session <id> | 根 / run / attach | 指定会话 ID |
--fork | 根 / run / attach | 从指定会话 fork(需与 --continue 或 --session 同用) |
--prompt <text> | 根 | TUI 初始 prompt |
-f, --file <path> | run | 附加文件,可多次 |
--share | run | 本次会话开启分享 |
--dangerously-skip-permissions | run | 自动通过非显式 deny 的权限请求 |
--format <default|json> | run | run 的事件流输出格式 |
--port <n> | 根 / serve / web / acp / run | 监听端口;显式传入时覆盖 config.server.port |
--hostname <host> | 根 / serve / web / acp | 监听主机名;显式传入时覆盖 config.server.hostname |
--mdns | 根 / serve / web / acp | 启用 mDNS 服务发现 |
--mdns-domain <domain> | 根 / serve / web / acp | mDNS 域名 |
--cors <origin> | 根 / serve / web / acp | 允许的 CORS 来源;追加到 config.server.cors,不替换 |
--pure | 根 | 跳过所有外部插件(等价 MIMOCODE_PURE=1) |
--print-logs | 根 | 日志输出到 stderr |
--log-level <level> | 根 | DEBUG / INFO / WARN / ERROR |
-p, --password <pwd> | run / attach | 远端 server 的 basic-auth 密码(等价 MIMOCODE_SERVER_PASSWORD) |
--dir <path> | run / attach | 工作目录;attach 模式下指远端路径 |
attach 子命令需要一个位置参数 <url> 指向远端 server:mimo attach <url> [flags...]。
互斥与依赖关系:
--continue 与 --session 不可同时指定一个新会话来源;--fork 必须与其中之一同用。--mdns 启用时若既没传 --hostname 也未在配置里写 server.hostname,hostname 才默认 0.0.0.0;任一处指定了 hostname 都以指定值为准。--share 受 MIMOCODE_DISABLE_SHARE 限制;后者为 true 时本 flag 失效。--dangerously-skip-permissions 仅在 run 子命令下有效;TUI 内由斜杠命令开启。切换 profile 根目录用于隔离测试。
在 CI 中内联注入配置与凭证,不依赖磁盘文件。
本次启动跳过所有权限提示(仅 run)。
本次运行临时换模型,不改写默认。
为 serve 启用 basic 认证并切换端口。
历史文档将远程 well-known 端点写作 .well-known/mimocode。源码实际请求的是 .well-known/opencode,自建组织默认值时请使用后者。