Wanlai CLI 配置说明

这份文档整理自 wanlai_code/env.doc.md,用于快速查看 Wanlai CLI 中和环境变量、配置文件相关的内容。 如果你想直接看带中文注释、可复制使用的完整本地模板,请打开:
wanlai_code/.wanlai/settings.local.json
当前页面的访问路由固定为 /wanlai-cli。如果你以前习惯用 wanlaicode 相关地址,请统一改看这里。
如果你现在需要的是安装命令或 VSIX 下载入口,请先看 主站下载与安装

配置文件位置

Wanlai CLI 当前统一使用 .wanlai 作为配置目录:
位置文件用途
全局~/.wanlai/settings.json当前用户在所有项目通用的配置
项目共享<项目>/.wanlai/settings.json团队共享、可提交到仓库的配置
项目本地<项目>/.wanlai/settings.local.json仅当前开发者生效,适合放密钥
全局运行状态~/.wanlai/.config.jsonCLI 自身维护的运行态数据
加载优先级如下:
安装包内置默认配置 -> 全局 -> 项目共享 -> 项目本地
后面的配置会覆盖前面的配置。

重要说明

  • settings.jsonsettings.local.json 支持注释,按 JSONC 解析。
  • 敏感信息优先放在 settings.local.jsonenv 中,不要放进项目共享配置。
  • 对于“未设置时由程序内部决定”的字段,不建议为了追求完整而强行写死。
  • 默认模板中的 $schema 使用相对路径,更适合仓库分发和安装脚本落地后的不同机器环境。

env 配置写法

在各个 settings 文件里,都可以通过 env 对象写环境变量:
{
  "env": {
    "WANLAI_API_KEY": "sk-xxxx",
    "WANLAI_API_BASE": "https://api.wanlai.ai/v1",
    "WANLAI_WEB_BASE": "https://wanlai.ai",
    "WANLAI_OAUTH_CLIENT_ID": "wanlaicode-cli",
    "WANLAI_MODEL": "gpt-5.4"
  }
}

Wanlai 相关环境变量

变量名默认值说明
WANLAI_API_KEY软件套餐专用 Key。设置后优先级最高,会优先于网页授权
WANLAI_API_BASEhttps://api.wanlai.ai/v1Wanlai OpenAI 兼容接口基地址
WANLAI_WEB_BASEhttps://wanlai.aiWanlai 网页授权站点地址
WANLAI_OAUTH_CLIENT_IDwanlaicode-cliOAuth client id
WANLAI_MODEL固定模型
WANLAI_CODE_OAUTH_REFRESH_TOKEN用 refresh token 直登时使用
WANLAI_CODE_OAUTH_SCOPESOAuth scopes
WANLAI_CODE_ENTRYPOINT入口标识
WANLAI_CONFIG_DIR~/.wanlai覆盖全局配置目录
WANLAI_DEFAULT_SETTINGS_PATH覆盖安装包内置默认配置文件路径
WANLAI_INSTALL_SCRIPT_URLwanlai update/update 使用的远程安装脚本地址
WANLAI_RELEASE_BASE_URL同时覆盖 install.sh 的 metadata / asset 根地址
WANLAI_RELEASE_METADATA_BASE_URLhttps://gitee.com/open-quan/wanlai_code/raw/main/releaseinstall.sh 解析 latest/stable 渠道时使用的元数据根地址
WANLAI_RELEASE_ASSET_BASE_URLhttps://gitee.com/open-quan/wanlai_code/releases/downloadinstall.sh 下载二进制包时使用的附件根地址

常用配置项

下面这些是最常用的配置片段。

1. 基础行为

{
  "respectGitignore": true,
  "cleanupPeriodDays": 30,
  "includeGitInstructions": true,
  "defaultShell": "bash",
  "alwaysThinkingEnabled": true,
  "promptSuggestionEnabled": true,
  "showClearContextOnPlanAccept": false,
  "terminalTitleFromRename": true,
  "syntaxHighlightingDisabled": false,
  "prefersReducedMotion": false,
  "showThinkingSummaries": false,
  "fastMode": false,
  "fastModePerSessionOptIn": false
}

2. 权限

{
  "permissions": {
    "defaultMode": "default"
    // "allow": ["Read", "Glob", "Grep", "Bash(git:*)"],
    // "deny": ["Bash(rm -rf:*)"],
    // "ask": ["Write(/etc/*)"]
  }
}
可选的 defaultMode
  • default
  • plan
  • acceptEdits
  • dontAsk
  • bypassPermissions

3. 模型和输出

{
  // "model": "gpt-5.4",
  // "availableModels": ["gpt-5.4", "gpt-5.4-mini"],
  // "modelOverrides": {
  //   "claude-sonnet-4-6": "gpt-5.4"
  // },
  // "outputStyle": "default",
  // "language": "zh-CN",
  // "effortLevel": "high",
  // "agent": "default",
  // "advisorModel": "gpt-5.4-mini"
}

4. Hooks

{
  // "disableAllHooks": false,
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "prettier --write \"$FILE\"",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

5. MCP / 插件

{
  // "enableAllProjectMcpServers": false,
  // "enabledMcpjsonServers": ["filesystem", "github"],
  // "disabledMcpjsonServers": ["dangerous-server"],
  // "allowedHttpHookUrls": ["https://hooks.example.com/*"],
  // "enabledPlugins": {
  //   "my-plugin@my-marketplace": true
  // }
}

6. Sandbox

{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": false,
    "allowUnsandboxedCommands": true,
    "network": {
      "allowedDomains": ["api.wanlai.ai", "wanlai.ai"]
    },
    "filesystem": {
      "allowWrite": ["/tmp"]
    }
  }
}

7. 远程 / SSH / Worktree

{
  // "worktree": {
  //   "symlinkDirectories": ["node_modules", ".cache"],
  //   "sparsePaths": ["src", "packages/foo"]
  // },
  // "plansDirectory": "~/.wanlai/plans",
  // "remote": {
  //   "defaultEnvironmentId": "prod-shell"
  // },
  // "sshConfigs": [
  //   {
  //     "id": "prod",
  //     "name": "生产环境",
  //     "sshHost": "root@example.com"
  //   }
  // ]
}

推荐放置方式

建议放到全局 ~/.wanlai/settings.json

  • 所有项目都通用的偏好配置
  • 例如 respectGitignoredefaultShelllanguage

建议放到项目共享 .wanlai/settings.json

  • 团队统一约定
  • 例如共享 hooks、共享 MCP server、共享插件启用状态

建议放到项目本地 .wanlai/settings.local.json

  • 密钥
  • refresh token
  • 本机路径
  • 不想提交到仓库的实验配置

打包默认配置

如果你希望发布二进制时自带一份默认配置,推荐维护下面这份源文件:
wanlai_code/.wanlai/settings.local.json
然后执行:
bash ./scripts/package-release.sh
如果你不想直接打包仓库里的 .wanlai/settings.local.json,也可以在打包时切换模板:
DEFAULT_SETTINGS_SOURCE=/path/to/settings.local.json bash ./scripts/package-release.sh
脚本会把模板复制到发行包中的:
share/wanlai/default-settings.json
运行时它会作为最低优先级默认来源加载,覆盖顺序如下:
  1. 安装包内置默认配置
  2. ~/.wanlai/settings.json
  3. .wanlai/settings.json
  4. .wanlai/settings.local.json
  5. CLI flags / managed settings
所以,打包进去的值只负责“开箱默认值”,用户后续仍然可以通过全局或项目配置继续覆盖。