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

文件位置

在 Windows 上,用户配置文件路径为 %APPDATA%\devin\config.json%APPDATA%\devin\mcp_config.json (例如 C:\Users\<you>\AppData\Roaming\devin\config.json) ,而不是 ~\.config\devin\
MCP 服务器在 v3000.3 (Local 3.6 版本) 中已移至专用的 mcp_config.json 文件。旧版本会将其存储在主配置文件的 mcpServers 密钥中;新版本会在启动时自动迁移其中找到的所有 mcpServers 条目。请参阅 mcpServers

完整配置参考


选项参考

标记为 仅限用户 的选项只能在用户配置中设置 (~/.config/devin/config.json;Windows 上为 %APPDATA%\devin\config.json) 。项目配置中只有 permissionsread_config_fromhooks 可用。mcpServers 也可在两个级别设置,但位于专用的 mcp_config.json 文件中 (请参阅 mcpServers) 。

Agent (仅限用户)

theme_mode (仅限用户)

权限

完整文档请参阅权限

mcpServers

服务器名称到服务器配置的映射。支持本地命令 (stdio) 和远程 HTTP 服务器。请参阅 MCP Configuration 自 v3000.3 (Local 3.6 版本) 起,MCP 服务器配置存储在专用文件中:~/.config/devin/mcp_config.json (Windows 上为 %APPDATA%\devin\mcp_config.json) 、.devin/mcp_config.json.devin/mcp_config.local.json。在较早版本中,mcpServers 密钥直接位于主配置文件中;较新版本会在启动时自动将其迁移到专用文件中。

show_path (仅限用户)

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

unicode_mode (仅限用户)

控制终端 UI 使用 Unicode 符号,还是使用兼容 ASCII 的替代字符。如果你的终端或字体无法正确渲染 Unicode 字形 (例如 ⏺ 符号显示为方框) ,请将其设为 "ascii"

show_hints (仅限用户)

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

include_gitignored_files (仅限用户)

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

respect_gitignore (仅限用户)

控制 Agent 在通过工具读取或写入文件时是否遵守 .gitignore。启用后,访问被 .gitignore 忽略路径的工具调用会被阻止。这与 include_gitignored_files 不同,后者仅影响 @ 选项卡补全。

attribution (仅限用户)

控制 Agent 是否在其创建的提交和拉取请求中添加 Devin 署名。启用后,提交信息和 PR 正文会包含一行 Generated with [Devin] 以及一个 Co-Authored-By: Devin 尾注。将其设为 false 可省略这两项,即不添加任何 Devin 署名。

subagents_enabled (仅限用户)

控制 Agent 是否可以将工作交给子 Agent。禁用后,run_subagentread_subagent 工具将被移除,因此 Agent 会自行完成所有工作。更改此设置会立即生效,正在运行的会话无需重启即可采用新设置。
Organization policy 优先:如果 Admin 已通过 默认子 Agent 模型 设置为你的 org 禁用子 Agent,则无论此设置如何,子 Agent 都会保持禁用状态。

keymap (仅限用户)

覆盖 CLI 的内置键盘快捷键。此部分是一个上下文表 (globaleditorinputlist、…) ,每个上下文将操作名称映射到触发相应操作的按键。未列出的操作将保留其内置默认设置。
按键规范由通过 - 分隔的修饰键 (ctrlaltshift) 和一个按键名称组成 (按键名称可以是单个字符,也可以是 enteresctabhomepage-upf5 等命名按键) 。修饰键的顺序不限,匹配不区分大小写;但单个大写字符表示绑定带 Shift 的按键 ("K" 等同于 "shift-k") 。
运行 /shortcuts 可查看每个操作及其 context.action 标识符 (即此处使用的标识符) ,并以交互方式重新绑定。你在那里设置的绑定会保存回本节。
global.cancel (Ctrl+C) 无法解除绑定,因此你始终可以中断正在运行的 Agent。无效条目、未知的上下文或操作,以及会与同一上下文中其他快捷键冲突的覆盖项,都会在启动时报告,并回退到内置默认值。

auto_update (仅限用户)

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

keymap (仅限用户)

覆盖键盘快捷键。覆盖项按 context 和 action 标识;该标识符为 /shortcuts 中每个快捷键显示的 context.action (例如 editor.insert_newline) :
覆盖会完全替换该 action 的内置默认设置;未列出的 action 将保留默认设置。Ctrl+C (取消) 无法解除绑定。无效条目 (未知名称、无效的按键规范、类型不正确的值,或与同一上下文中其他绑定冲突的覆盖) 会在启动时以警告形式报告并跳过——其余配置仍会生效。 按键规范由零个或多个以 - 分隔的修饰键以及一个按键名称组成 (例如 ctrl-shift-palt-enterf5K) 。修饰键:ctrl/control/calt/meta/option/opt/mshift/s。命名按键:enteresctabbackspacedeleteinsertupdownleftrighthomeendpage-uppage-downspacef1f24。其他任何单个字符都会绑定对应的字符键 (区分大小写:K 会绑定 Shift+K) ;减号键请使用 - (ctrl--) 。 你也可以交互式地重新绑定:在 /shortcuts 中,选中某个快捷键行后按 Enter,再按下新按键——更改会保存到此 keymap 部分。参见自定义按键绑定

notify

控制 Agent 完成任务或需要 user 输入时的终端通知。CLI 会写入一个 BEL 字符 (触发终端铃声/可视铃声) 、一个 OSC 9 转义序列 (在 iTerm2 和兼容终端中触发系统通知) ,以及一个 OSC 777 序列 (在 rxvt-unicode 和其他终端中触发桌面通知) 。无法识别这些序列的终端会安全地忽略它们。

read_config_from

控制是否从其他 AI 工具的配置中导入: 设为 false 可禁用某项导入。null 会被视为 true

proxy (仅限用户)

配置 CLI 如何为自身发出的 HTTP/HTTPS 流量 (API 调用、更新、MCP 服务器等) 选择代理路由。这不会影响沙盒子进程的联网方式 (见下方的 sandbox) 。 mode 字段用于选择代理策略: 示例——企业代理:
示例——禁用代理:
管理员也可以在适用于整台机器的系统配置文件中设置相同的 proxy 块。Enterprise 设置优先;如果两个文件中都配置了代理,将导致错误——如果你的组织负责管理此设置,请从你的用户配置中移除 proxy 部分。

沙盒 (仅限用户)

沙盒 网络过滤目前还不稳定。如果你需要此功能,请联系你的账户代表,了解其稳定性时间表。
为 沙盒 配置域级网络过滤。启用 --sandbox 且已配置域过滤时,系统会在回环地址上启动一个受管网络代理,沙盒 会强制所有子进程的网络流量都经由该代理转发。
如需全面了解 沙盒 的工作方式——包括企业级强制执行机制,以及企业设置与用户设置如何交互——请参阅 沙盒 文档
--sandbox 标志会在操作系统层面强制执行可写路径和 deny 规则。可写根目录根据已授予的 Write(...) 作用域以及工作区目录派生而来;除此之外的所有路径均可读,但被 Read(...) 拒绝规则隐藏的路径除外。在会话中途授予的 Write(...) 作用域会动态扩展 沙盒,使其对后续命令生效。
如果传入了 --sandbox,但 沙盒 初始化失败 (例如当前平台上没有可用的沙箱工具) ,CLI 会拒绝启动,而不是在无 沙盒 的情况下运行。这种“故障默认关闭”的行为可确保 --sandbox 的安全意图绝不会被悄然绕过。
域名模式语法: 示例:
仅在沙盒启用时 (--sandbox) ,域过滤才会生效。不使用 --sandbox 时,会忽略沙盒相关部分。
对于企业团队,管理员可以通过 团队设置 覆盖域名列表。企业允许列表以其配置为准 (会替换你本地的 allowed_domains) ,而企业拒绝列表则为叠加模式 (会与你本地的 denied_domains 合并) 。

带注释的 JSON

配置文件支持 JavaScript 风格的注释: