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對應:旗標 → 布林值否功能開關的布林切換
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。

欄位契約
styleworkspace-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:

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
  }
}