跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt

Use this file to discover all available pages before exploring further.

Devin CLI 使用 JSON 文件 (支持注释) 进行配置。本页介绍所有可用选项。

文件位置

文件目的
~/.config/devin/config.json用户级设置
.devin/config.json项目设置 (已提交)
.devin/config.local.json项目本地覆盖设置 (已被 Git 忽略)
在 Windows 上,用户配置文件路径为 %APPDATA%\devin\config.json (例如 C:\Users\<you>\AppData\Roaming\devin\config.json) ,而不是 ~\.config\devin\config.json

完整配置参考

// ~/.config/devin/config.json
{
  // Agent 行为
  "agent": {
    "model": "swe-1-6-fast",           // 默认模型
    "show_history_on_continue": true  // 恢复时显示消息记录
  },

  // 主题
  "theme_mode": null,            // "light"、"dark"、"terminal-dark"、"terminal-light"、"nocolor" 或 null(自动)

  // 权限
  "permissions": {
    "allow": [],
    "deny": [],
    "ask": []
  },

  // MCP 服务器
  "mcpServers": {},

  // 显示
  "show_path": false,             // 在输入框边框中显示 CWD
  "unicode_mode": "auto",         // "auto"、"unicode" 或 "ascii"
  "show_hints": true,             // 在各轮对话之间显示提示

  // 文件补全
  "include_gitignored_files": false, // 在 @ 补全中包含被 gitignore 忽略的文件

  // 文件访问
  "respect_gitignore": false,        // 阻止工具访问被 gitignore 忽略的路径

  // 更新
  "auto_update": true,            // 在后台安装新版本

  // 通知
  "notify": "smart",              // "never" | "smart" | "always" — 终端通知

  // CLI HTTP 流量的代理设置
  "proxy": {
    "mode": "system",           // "system" | "manual" | "off"
    "url": null,                // 代理 URL(手动模式下必填)
    "no_proxy": null            // 以逗号分隔的不走代理列表
  },

  // 沙盒网络过滤
  "sandbox": {
    "allowed_domains": [],       // 域名允许列表(空 = 不过滤)
    "denied_domains": [],        // 域名拒绝列表(优先)
    "network_mode": "full"       // "full" 或 "limited"(仅限 GET/HEAD/OPTIONS)
  },

  // 从其他工具导入设置
  "read_config_from": {
    "cursor": true,
    "windsurf": true,
    "claude": true
  }
}

选项参考

标记为 仅限用户 的选项只能在用户配置中设置 (~/.config/devin/config.json;Windows 上为 %APPDATA%\devin\config.json) 。项目配置中只有 permissionsmcpServersread_config_fromhooks 可用。

Agent (仅限用户)

选项类型默认值描述
modelstring"swe-1-6-fast"默认 AI 模型
show_history_on_continuebooleantrue恢复会话时显示之前的消息记录

theme_mode (仅限用户)

行为
null自动检测 (首次运行时会询问)
"light"浅色主题
"dark"深色主题
"terminal-dark"采用 16 色 ANSI 颜色量化的深色主题 (遵循终端配色方案)
"terminal-light"采用 16 色 ANSI 颜色量化的浅色主题 (遵循终端配色方案)
"nocolor"无颜色输出 (单色,适用于 VT100 终端)

权限

完整文档请参阅权限
{
  "permissions": {
    "allow": ["Read(**)", "Exec(git)"],
    "deny": ["Exec(sudo)"],
    "ask": ["Write(**/.env*)"]
  }
}

mcpServers

服务器名称到服务器配置的映射。支持本地命令 (stdio) 和远程 HTTP 服务器。请参阅 MCP Configuration
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": { "KEY": "value" }
    },
    "remote-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http"
    }
  }
}

show_path (仅限用户)

在输入框边框中显示当前工作目录路径。启用后,输入框上边框会显示美化后的 CWD (例如 ~/projects/my-app) 。
行为
false隐藏 (默认)
true在输入框边框中显示 CWD 路径

unicode_mode (仅限用户)

控制终端 UI 使用 Unicode 符号,还是使用兼容 ASCII 的替代字符。如果你的终端或字体无法正确渲染 Unicode 字形 (例如 ⏺ 符号显示为方框) ,请将其设为 "ascii"
行为
"auto"从环境中检测是否支持 Unicode (默认)
"unicode"始终使用 Unicode 符号
"ascii"始终使用兼容 ASCII 的字符

show_hints (仅限用户)

在对话轮次之间偶尔显示提示 (例如“你知道吗:使用 /model 可在可用模型之间切换”) 。有助于你了解 CLI 功能;熟悉后可将其设为 false 以关闭这些提示。
行为
true偶尔显示提示 (默认)
false从不显示提示

include_gitignored_files (仅限用户)

@ 选项卡补全结果中包含被 Git 忽略的文件。启用后,匹配 .gitignore 规则的文件会出现在 @ 提及补全中。如果你将文档或其他文件存放在被 Git 忽略的目录中,并希望引用它们,此选项会很有用。
行为
false从补全中排除被 Git 忽略的文件 (默认)
true@ 补全中包含被 Git 忽略的文件

respect_gitignore (仅限用户)

控制 Agent 在通过工具读取或写入文件时是否遵守 .gitignore。启用后,访问被 .gitignore 忽略路径的工具调用会被阻止。这与 include_gitignored_files 不同,后者仅影响 @ 选项卡补全。
行为
false无论 .gitignore 如何,Agent 都可以访问所有文件 (默认)
true阻止工具访问被 .gitignore 忽略的路径

auto_update (仅限用户)

控制 macOS 和 Linux 上的后台自动更新。启用后,Devin CLI 运行期间会在后台下载并启用新版本,因此下次调用 devin 时会自动使用最新版本。当前正在运行的会话不受影响——current 符号链接的切换只会在下次启动时生效。 此更新机制可安全应对中断:文件系统的每个步骤都会先暂存到临时路径,再通过原子重命名切换到正式位置;同时,并发更新会通过文件锁按顺序执行。更新过程中即使退出,也不会导致安装损坏——下次启动时仍只会继续使用旧版本。 仅适用于自行管理的安装 (macOS/Linux 上通过 curl | bash 安装) 。与其他产品捆绑的安装 (例如 Windsurf) 会忽略此设置,并通过其宿主应用进行更新。
行为
true在后台下载并安装新版本 (默认)
false仅检查新版本;通过 /update 手动安装

notify

控制 Agent 完成任务或需要 user 输入时的终端通知。CLI 会写入一个 BEL 字符 (触发终端铃声/可视铃声) 、一个 OSC 9 转义序列 (在 iTerm2 和兼容终端中触发系统通知) ,以及一个 OSC 777 序列 (在 rxvt-unicode 和其他终端中触发桌面通知) 。无法识别这些序列的终端会安全地忽略它们。
ValueBehavior
"never"不通知
"smart"仅在终端窗口未获得焦点时通知 (使用 OSC 焦点报告) (default)
"always"无论是否获得焦点,只要发生符合条件的事件就通知

read_config_from

控制是否从其他 AI 工具的配置中导入:
选项类型默认值说明
cursorboolean/nulltrue.cursorrules.cursor/rules/ 导入
windsurfboolean/nulltrue.windsurf/rules/ 导入
claudeboolean/nulltrue.claude/ 导入
设为 false 可禁用某项导入。null 会被视为 true

proxy (仅限用户)

配置 CLI 如何为自身发出的 HTTP/HTTPS 流量 (API 调用、更新、MCP 服务器等) 选择代理路由。这不会影响 sandbox 子进程的联网方式 (见下方的 sandbox) 。 mode 字段用于选择代理策略:
ModeBehavior
"system" (default)遵循环境变量 (HTTP_PROXYHTTPS_PROXYALL_PROXY) ,以及 macOS 和 Windows 上平台原生的 PAC (代理自动配置)
"manual"通过明确指定的 url 转发所有 CLI 流量
"off"直接连接——不使用代理
OptionTypeDefaultDescription
modestring"system"代理策略:"system""manual""off"
urlstring/nullnull代理 URL。当 mode"manual" 时为必填。支持 http://https://socks5:// 协议
no_proxystring/nullnull不走代理的主机/域名逗号分隔列表。使用与 NO_PROXY 环境变量相同的语法 (例如 "localhost,127.0.0.1,.corp.example.com") 。适用于任何模式
示例——企业代理:
{
  "proxy": {
    "mode": "manual",
    "url": "http://proxy.corp.example.com:8080",
    "no_proxy": "localhost,127.0.0.1,.internal.corp"
  }
}
示例——禁用代理:
{
  "proxy": {
    "mode": "off"
  }
}

sandbox (仅限用户)

Sandbox 网络过滤目前还不稳定。如果你需要此功能,请联系你的账户代表,了解其稳定性时间表。
为 sandbox 配置域级网络过滤。启用 --sandbox 且已配置域过滤时,系统会在回环地址上启动一个受管网络代理,sandbox 会强制所有子进程的网络流量都经由该代理转发。 --sandbox 标志会在操作系统层面强制执行当前生效的 Read 和 Write 权限作用域。可写根目录根据已授予的 Write(...) 作用域以及工作区目录派生而来;可读根目录则来自 Read(...) 作用域 (平台默认路径始终可读) 。在会话中途授予的作用域会动态扩展 sandbox,使其对后续命令生效。
如果传入了 --sandbox,但 sandbox 初始化失败 (例如当前平台上没有可用的沙箱工具) ,CLI 会拒绝启动,而不是在无 sandbox 的情况下运行。这种“故障默认关闭”的行为可确保 --sandbox 的安全意图绝不会被悄然绕过。
选项类型默认值描述
allowed_domainsstring[][]允许通过代理的域名模式。非空时,仅允许匹配的域名通过 (允许列表模式)
denied_domainsstring[][]始终阻止的域名模式。拒绝规则优先于允许规则
network_modestring"full""full" 允许所有 HTTP 方法;"limited" 仅允许 GET/HEAD/OPTIONS
域名模式语法:
模式匹配项
example.com仅精确匹配
*.example.com任意子域名 (不包括根域名)
**.example.com根域名及其任意子域名
示例:
{
  "sandbox": {
    "allowed_domains": [
      "github.com",
      "**.npmjs.org",
      "**.crates.io",
      "**.pypi.org"
    ],
    "denied_domains": ["evil.example.com"],
    "network_mode": "full"
  }
}
仅在sandbox启用时 (--sandbox) ,域过滤才会生效。不使用 --sandbox 时,会忽略sandbox相关部分。
对于企业团队,管理员可以通过 团队设置 覆盖域名列表。企业允许列表以其配置为准 (会替换你本地的 allowed_domains) ,而企业拒绝列表则为叠加模式 (会与你本地的 denied_domains 合并) 。

带注释的 JSON

配置文件支持 JavaScript 风格的注释:
{
  // 行注释
  "agent": {
    "model": "sonnet"  // 内联注释
  },
  /* 块注释
     */
  "permissions": {}
}