# mimo2codex —— 本地 key 与运行时配置 # # 1. 把本文件复制为 `.env`(已在 .gitignore,不会被提交)。 # 2. 填入你用到的 provider 的 key,其余保留注释即可。 # 3. 用脚本一次性把 key 注入当前 shell: # macOS / Linux / Git Bash: source scripts/load-env.sh # Windows PowerShell: . .\scripts\load-env.ps1 # 然后照常启动: # mimo2codex # 默认 = MiMo # mimo2codex --model ds # 改成 DeepSeek # # 语法说明: # - 以 `#` 开头的行和空行会被忽略。 # - 值可以用 `"` 或 `'` 包起来,外层引号会自动剥掉,内部字面量。 # - 已存在的同名环境变量会被本文件覆盖(本文件就是 source of truth)。 # - 千万别提交 `.env` —— .gitignore 已经挡掉。 # ─────────────── 内置 provider ─────────────── # MiMo(小米)。控制台拿 key:https://platform.xiaomimimo.com/#/console/api-keys # sk-* 自动走按量计费 host,tp-* 走 token-plan host。 # MIMO_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # DeepSeek。控制台:https://api-docs.deepseek.com/zh-cn/ # 两个名字都可以,同时设置时 DS_API_KEY 优先。 # DS_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # ─────────────── 通用 / 第三方 OpenAI 兼容上游 ─────────────── # 单实例快捷方式:不用改 providers.json,直接声明一个叫 "generic" 的 provider。 # 配合启动参数 `mimo2codex --model generic` 使用。 # GENERIC_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # GENERIC_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # GENERIC_DEFAULT_MODEL=qwen3-max # 单实例的进阶可选项: # GENERIC_SHORTCUT=qwen # CLI / webui 显示的短码,默认 "generic" # GENERIC_DISPLAY_NAME=Qwen (DashScope) # 中文/友好名称 # GENERIC_WIRE_API=chat # "chat"(默认)或 "responses" 直透 # GENERIC_FORCE_DEFAULT_MODEL=1 # 未知 model 字段自动改写到 GENERIC_DEFAULT_MODEL # 多实例:在 ~/.mimo2codex/providers.json 声明的每个 provider,这里要给它的 # envKey 字段对应的环境变量赋值。下面是常见示例。 # QWEN_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # KIMI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # GLM_API_KEY=xxxxxxxxxxxxxxxxxxxx # OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx # ─────────────── 自定义 base URL(可选)─────────────── # 只在需要替换上游域名时才设置(比如内网代理、地区镜像)。 # 内置 provider: # MIMO_BASE_URL=https://api.xiaomimimo.com/v1 # DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # # 通用 provider 自动派生:providers.json 里 envKey="_API_KEY" 时, # _BASE_URL 会被识别,覆盖 providers.json 里声明的 baseUrl。 # 单实例同理:GENERIC_API_KEY 对应 GENERIC_BASE_URL(上面已演示)。 # QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # KIMI_BASE_URL=https://api.moonshot.cn/v1 # GLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4 # OPENAI_BASE_URL=https://api.openai.com/v1 # ─────────────── mimo2codex 运行时配置(可选)─────────────── # 监听 host / port。CLI 的 --host / --port 优先级高于环境变量。 # MIMO2CODEX_HOST=127.0.0.1 # MIMO2CODEX_PORT=8788 # 数据目录(sqlite + admin 状态)。CLI 的 --data-dir 优先。 # 默认 ~/.mimo2codex/ # MIMO2CODEX_DATA_DIR=~/.mimo2codex # providers.json 的位置(通用 provider 声明文件)。 # 默认 /providers.json # MIMO2CODEX_PROVIDERS_FILE=~/.mimo2codex/providers.json # 不通过 --model 也能改默认 provider。内置可选:mimo / deepseek; # providers.json 里声明的 generic provider id 也行。 # MIMO2CODEX_DEFAULT_PROVIDER=mimo # 终端不显示思考过程(reasoning_content 仍然会原样回传上游)。 # 等价于 --no-reasoning。任意非空值即生效。 # MIMO2CODEX_NO_REASONING=1 # 详细日志,每个请求打 INFO。等价于 --verbose。 # MIMO2CODEX_VERBOSE=1 # 关闭 admin UI 和 sqlite(无状态只读模式)。等价于 --no-admin。 # MIMO2CODEX_NO_ADMIN=1 # 上游返回「上下文超长」400 时的展示方式: # friendly(默认)—— 翻译成中英双语 + 提示 /compact # passthrough —— 原样透传上游的报文 # MIMO2CODEX_CONTEXT_OVERFLOW_MODE=friendly # ─────────────── 鉴权与多用户(v0.2.16+,可选)─────────────── # 详细文档见 doc/auth-deployment.zh.md # # 总开关: # off(默认 / npm 全局 / 本地源码)—— 沿用零鉴权本地代理行为,/admin/* 和 # /v1/* 全开,没有用户、没有 token。 # on —— 启用登录系统 + 每用户 API key + BYOK + OAuth + Codex 配置导出。 # Docker 镜像在 Dockerfile 里默认设为 on;本地源码默认 off。 # 等价的 CLI flag:`mimo2codex --auth on` / `--auth off`。 # 首次启动 + 用户表为空时,打开 http://:/admin/ 即可注册首位管理员(无 token)。 # MIMO2CODEX_AUTH=off # 主密钥(用来 AES-256-GCM 加密 BYOK 上游 key 与 OAuth client_secret)。 # 推荐生产部署设这个 env:主密钥与密文不在同一台机器,安全性更高。 # 没设的话,首次启动会自动在 /master.key 生成一份(0o600 权限)。 # 一旦丢失(env 没存档 + master.key 文件没了),所有 BYOK / OAuth 密文都解不开。 # 生成一个: # bash → openssl rand -base64 32 # pwsh → [Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32)) # node → node -e "console.log(require('crypto').randomBytes(32).toString('base64'))" # MIMO2CODEX_MASTER_KEY= # HTTPS 部署时打开 session cookie 的 Secure 属性。HTTP 调试时**不要**开(浏览器会拒收)。 # 反代终止 TLS 的部署(nginx / caddy + https),强烈建议设 =1。 # MIMO2CODEX_COOKIE_SECURE=0 # ─────────────── 出站代理(可选,v0.4.5+)─────────────── # 服务器无法直连上游 LLM 时(例:境外节点 / 内网代理转发),填这里。 # 与 curl 一致:HTTPS_PROXY 给 HTTPS 上游,HTTP_PROXY 给 HTTP,NO_PROXY 是排除列表。 # 重启后生效;启动 banner 会回显当前代理状态便于核对。Docker 部署同样在 # docker-compose.yml 的 environment: 段声明即可。 # HTTPS_PROXY=http://127.0.0.1:7890 # HTTP_PROXY=http://127.0.0.1:7890 # NO_PROXY=localhost,127.0.0.1,::1 # 关闭开关:你的 shell 里为 curl/git 常驻了 HTTPS_PROXY,但不想让 mimo2codex # 跟着走(典型场景:代理出口在境外,但上游是国内域名 —— 走代理反而不通)。 # 任意非空值生效,mimo2codex 行为回退到 v0.4.4 之前(不读任何代理 env)。 # MIMO2CODEX_NO_PROXY_FROM_ENV=1