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。
| 字段 | 约定 |
|---|---|
style | workspace-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:
{
"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:
{
"profile": "core",
"delivery": "both",
"featureFlags": {},
"telemetry": {
"anonymousId": "5f8a2c1e-4b6d-4f9a-9c3d-7e1b2a8d4c6f",
"noticeSeen": true
}
}