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.json | CLI 自身维护的运行态数据 |
加载优先级如下:
安装包内置默认配置 -> 全局 -> 项目共享 -> 项目本地
后面的配置会覆盖前面的配置。
重要说明
settings.json 和 settings.local.json 支持注释,按 JSONC 解析。
- 敏感信息优先放在
settings.local.json 的 env 中,不要放进项目共享配置。
- 对于“未设置时由程序内部决定”的字段,不建议为了追求完整而强行写死。
- 默认模板中的
$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_BASE | https://api.wanlai.ai/v1 | Wanlai OpenAI 兼容接口基地址 |
WANLAI_WEB_BASE | https://wanlai.ai | Wanlai 网页授权站点地址 |
WANLAI_OAUTH_CLIENT_ID | wanlaicode-cli | OAuth client id |
WANLAI_MODEL | 无 | 固定模型 |
WANLAI_CODE_OAUTH_REFRESH_TOKEN | 无 | 用 refresh token 直登时使用 |
WANLAI_CODE_OAUTH_SCOPES | 无 | OAuth scopes |
WANLAI_CODE_ENTRYPOINT | 无 | 入口标识 |
WANLAI_CONFIG_DIR | ~/.wanlai | 覆盖全局配置目录 |
WANLAI_DEFAULT_SETTINGS_PATH | 无 | 覆盖安装包内置默认配置文件路径 |
WANLAI_INSTALL_SCRIPT_URL | 无 | wanlai update 和 /update 使用的远程安装脚本地址 |
WANLAI_RELEASE_BASE_URL | 无 | 同时覆盖 install.sh 的 metadata / asset 根地址 |
WANLAI_RELEASE_METADATA_BASE_URL | https://gitee.com/open-quan/wanlai_code/raw/main/release | install.sh 解析 latest/stable 渠道时使用的元数据根地址 |
WANLAI_RELEASE_ASSET_BASE_URL | https://gitee.com/open-quan/wanlai_code/releases/download | install.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
- 所有项目都通用的偏好配置
- 例如
respectGitignore、defaultShell、language
建议放到项目共享 .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
运行时它会作为最低优先级默认来源加载,覆盖顺序如下:
- 安装包内置默认配置
~/.wanlai/settings.json
.wanlai/settings.json
.wanlai/settings.local.json
- CLI flags / managed settings
所以,打包进去的值只负责“开箱默认值”,用户后续仍然可以通过全局或项目配置继续覆盖。