Skip to content

CLI 设置(config.json) ​

config.json 的每个字段:openspec CLI 在你这台机器上的运行方式。

位置 ​

CLI 在 macOS 和 Linux 上将机器级设置保存在 ~/.config/openspec/config.json,在 Windows 上保存在 %APPDATA%\openspec\config.json。设置后,$XDG_CONFIG_HOME 在所有平台上都优先。openspec config 命令会读取并编辑该文件。

字段 ​

键类型是否必需作用
profile字符串:core 或 custom否选择 openspec init 安装的工作流集合
delivery字符串:both、skills 或 commands否init 是安装技能、斜杠命令,还是两者都安装
workflows字符串列表否custom 配置档安装的工作流列表
featureFlags映射:flag → 布尔值否布尔型功能开关
defaultStore字符串否用于根解析的机器级后备存储
openers映射:tool id → 设置否工作集可在其中打开的工具,以及每个工具的启动方式
telemetry映射否遥测退出、匿名 ID 和通知已显示状态

profile ​

openspec init 安装哪一组工作流。默认值为 core:propose、explore、apply、update、sync 和 archive。设置为 custom 时,则改为严格安装 workflows 列表中指定的工作流。

delivery ​

init 是将工作流安装为技能、斜杠命令,还是两者都安装。默认值为 both。

workflows ​

custom 配置档安装的工作流;当配置档为 core 时忽略。有效 id:propose、explore、new、continue、apply、update、ff、sync、archive、bulk-archive、verify、onboard。

featureFlags ​

以 flag 名称为键的布尔开关,可使用 openspec config set featureFlags.<flag> true 设置。目前 CLI 不会读取任何 flag。

defaultStore ​

用于根解析的机器级后备存储 id,仅当 --store flag、本地 openspec/ 和项目 store: 指针都无法解析时才会使用。完整优先级顺序见根解析。

openers ​

工作集可在其中打开的工具,以 tool id 为键。在终端中使用 openspec config edit 编辑全局 config.json 中的 openers。

字段约定
styleworkspace-file 或 attach-dirs。新工具必需;内置工具可选。
label在工具选择器中显示的非空字符串。新工具默认使用其 id。
command非空的可执行文件名或路径。新工具默认使用其 id。请将参数放在 args 中,不要放在此字符串中。
args在工作区文件或 attach 标志之前传递的字符串数组。新工具默认值为 []。
attach_flag与 attach-dirs 的每个成员路径配对的非空字符串。新工具默认为 --add-dir。对 workspace-file 忽略。

内置工具覆盖:code、cursor、claude 和 codex 会保留你省略的任何字段。设置 args 会替换整个参数列表;[] 会清空它。

启动方式:workspace-file 会将生成的 .code-workspace 路径传递给可执行文件。attach-dirs 会为每个成员传递一个标志/路径对,包括主成员。

可用性:attach-dirs opener(包括 Claude Code 和 Codex)默认禁用。你无法通过 --tool 选择或保存它们,并且 OpenSpec 会拒绝打开已经指定了某个 attach-dirs opener 的工作集。配置覆盖不会启用 attach-dirs 启动方式。

校验:未知字段、无效类型,以及缺少 style 的新工具,会在工作集命令读取 opener 表时报错。

此示例添加 VS Code Insiders,并在内置 VS Code opener 每次启动时传递 --new-window:

json
{
  "openers": {
    "code-insiders": {
      "style": "workspace-file",
      "label": "VS Code Insiders"
    },
    "code": {
      "args": ["--new-window"]
    }
  }
}

相应的 code-insiders 或 code 可执行文件必须已安装,并且可在 PATH 中使用。

telemetry ​

CLI 会存储你的匿名 ID 以及首次运行通知是否已显示。将 telemetry.enabled 设为 false 可禁用遥测。你也可以在环境中使用 OPENSPEC_TELEMETRY=0 或 DO_NOT_TRACK=1 退出遥测。

示例 ​

填写完整的 config.json:

json
{
  "profile": "core",
  "delivery": "both",
  "featureFlags": {},
  "telemetry": {
    "anonymousId": "5f8a2c1e-4b6d-4f9a-9c3d-7e1b2a8d4c6f",
    "noticeSeen": true
  }
}