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 | 對應:旗標 → 布林值 | 否 | 功能開關的布林切換 |
defaultStore | 字串 | 否 | 根目錄解析的機器層級備援存放庫 |
openers | 對應:工具 id → 設定 | 否 | workset 開啟的工具,以及各工具的啟動方式 |
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
以旗標名稱為鍵的布林切換,可透過 openspec config set featureFlags.<flag> true 設定。目前 CLI 未讀取任何旗標。
defaultStore
根目錄解析的機器層級備援存放庫 id,僅在沒有 --store 旗標、本機 openspec/ 或專案 store: 指標可供解析時才會使用。完整階層請參閱根目錄解析。
openers
workset 可開啟的工具,以工具 id 為鍵。可使用終端機中的 openspec config edit 來編輯全域 config.json 中的 openers。
| 欄位 | 契約 |
|---|---|
style | workspace-file 或 attach-dirs。新工具必填;內建工具選填。 |
label | 在工具選擇器中顯示的非空字串。新工具預設為 id。 |
command | 非空的執行檔名稱或路徑。新工具預設為 id。請將參數放在 args 中,而非此字串。 |
args | 在工作區檔案或附加旗標之前傳遞的字串陣列。新工具預設為 []。 |
attach_flag | 針對 attach-dirs,與每個成員路徑配對的非空字串。新工具預設為 --add-dir。workspace-file 會忽略此設定。 |
內建覆寫: code、cursor、claude 及 codex 會保留您省略的任何欄位。設定 args 會取代整個參數清單;[] 會將其清空。
啟動樣式: workspace-file 會將產生的 .code-workspace 路徑傳遞給執行檔。attach-dirs 會為每個成員(包括主要成員)傳遞一組旗標/路徑配對。
可用性: attach-dirs 開啟器(包括 Claude Code 和 Codex)預設為停用。您無法透過 --tool 選取或儲存它們,且 OpenSpec 拒絕開啟已指定其中之一 的 workset。設定覆寫不會啟用 attach-dirs 啟動樣式。
驗證: 未知欄位、無效型別,以及新工具缺少 style 時,會在 workset 命令讀取開啟器表格時失敗。
以下範例新增了 VS Code Insiders,並在內建 VS Code 開啟器啟動時傳入 --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
}
}