← 文档中心

配置

配置

文件位置

全局配置按平台存放:

平台路径
Linux$XDG_CONFIG_HOME/duoduocode/config.json(回退 ~/.config/duoduocode/config.json
macOS~/Library/Application Support/duoduocode/config.json
Windows%APPDATA%\duoduocode\config.json

项目级配置放在项目根目录,自当前目录向上查找到 worktree 根为止,文件名按以下顺序取第一个命中:

  1. duoduo-ai.jsonc
  2. duoduo-ai.json
  3. duoduo.jsonc
  4. duoduo.json

项目级配置会覆盖全局配置,只对当前项目生效。

加载优先级

全局配置目录下可同时存在多个文件,后者覆盖前者

config.json  →  duoduo-ai.json  →  duoduo-ai.jsonc

此外还有两个补充来源:

  • 环境变量 DUODUO_CONFIG 指向的额外配置文件
  • 环境变量 DUODUO_CONFIG_DIR 指定的额外配置目录(也可用 ~/.duoduo

旧版的 TOML 格式配置文件会在首次加载时自动迁移为 config.json,并删除原文件。

配置格式

配置文件支持 JSONC(JSON with Comments)——可以写注释,也可以保留尾随逗号:

{
  "$schema": "https://www.dd322.cn/code/config.json",
  "model": "deepseek/deepseek-chat",   // 默认模型
  "theme": "tokyonight",
}

$schema 指向官方 JSON Schema,编辑器会据此提供字段补全与校验。DuoDuoCode 在首次加载时若发现没有 $schema,会自动补写。

变量插值

配置值中可使用插值,避免把密钥写进文件:

语法含义
{env:VAR_NAME}读取环境变量 VAR_NAME
{file:/path/to/file}读取文件内容(支持 ~ 展开)
{
  "provider": {
    "my-gateway": {
      "options": {
        "apiKey": "{env:MY_GATEWAY_KEY}"
      }
    }
  }
}

环境变量

所有环境变量统一使用 DUODUO_ 前缀。常用项:

变量作用
DUODUO_CONFIG额外配置文件路径
DUODUO_CONFIG_DIR额外配置目录
DUODUO_CONFIG_CONTENT直接以字符串提供配置内容
DUODUO_DISABLE_PROJECT_CONFIG忽略项目级配置
DUODUO_DISABLE_DEFAULT_PLUGINS禁用默认插件
DUODUO_SERVER_USERNAME / DUODUO_SERVER_PASSWORDserve 的基础认证
DUODUO_MODELS_URL / DUODUO_MODELS_PATH自定义模型列表来源
DUODUO_CLIENT标识客户端类型(cli / desktop / app

模型 API Key 也通过环境变量传入,具体变量名由各 Provider 声明,见模型与 Provider

常用配置项

配置顶层字段较多,以下为最常用的部分(完整字段以 $schema 为准):

字段说明
model默认模型,格式 provider/model
small_model小模型,用于生成标题、压缩上下文等轻量任务
default_agent默认 Agent,非法值回退 build
provider自定义 Provider 与模型覆盖
enabled_providersProvider 白名单,设置后仅启用列表内的
disabled_providersProvider 黑名单
agent各 Agent 的模型、提示词与权限配置
permission权限规则,控制 AI 能做什么
mcpMCP 服务器配置
plugin插件列表
command自定义斜杠命令
instructions追加的项目指令文件或 glob
snapshot是否记录文件快照(关闭后无法撤销/回滚)
compaction上下文自动压缩策略
autoupdate自动更新:true / false / "notify"
logLevelDEBUG / INFO / WARN / ERROR
tools单个工具的开关
lsp / formatterLSP 与格式化器的开关和覆盖
experimental实验特性开关

示例:

{
  "$schema": "https://www.dd322.cn/code/config.json",
  "model": "anthropic/claude-sonnet-4",
  "small_model": "deepseek/deepseek-chat",
  "default_agent": "build",
  "autoupdate": "notify",
  "permission": {
    "edit": "ask",
    "bash": { "*": "ask", "git *": "allow" }
  },
  "mcp": {
    "context7": {
      "type": "local",
      "command": ["npx", "-y", "@upstash/context7-mcp"],
      "enabled": true
    }
  }
}

检查当前生效的配置

duoduocode debug config   # 打印合并后的最终配置
duoduocode debug paths    # 打印各目录的实际路径

相关