Pengaturan CLI (config.json)
Setiap field di config.json: bagaimana perilaku CLI openspec pada mesin Anda.
Lokasi
CLI menyimpan pengaturan tingkat mesinnya di ~/.config/openspec/config.json pada macOS dan Linux, serta %APPDATA%\openspec\config.json pada Windows. $XDG_CONFIG_HOME yang menang di setiap platform bila disetel. Perintah openspec config membaca dan mengeditnya.
Field
| Kunci | Tipe | Wajib | Efek |
|---|---|---|---|
profile | string: core atau custom | Tidak | Memilih set workflow yang dipasang oleh openspec init |
delivery | string: both, skills, atau commands | Tidak | Menentukan apakah init memasang skills, slash commands, atau keduanya |
workflows | daftar string | Tidak | Daftar workflow yang dipasang oleh profil custom |
featureFlags | map: flag → boolean | Tidak | Sakelar fitur boolean |
defaultStore | string | Tidak | Store cadangan tingkat mesin untuk resolusi root |
openers | map: tool id → settings | Tidak | Tool yang dibuka oleh workset, dan cara masing-masing diluncurkan |
telemetry | map | Tidak | Opt-out telemetri, id anonim, dan status notice-seen |
profile
Set workflow mana yang dipasang oleh openspec init. Default-nya core: propose, explore, apply, update, sync, dan archive. Mengatur ke custom memasang persis daftar workflows.
delivery
Menentukan apakah init memasang workflow sebagai skills, sebagai slash commands, atau keduanya. Default-nya both.
workflows
Workflow yang dipasang oleh profil custom; diabaikan bila profilnya core. Id yang valid: propose, explore, new, continue, apply, update, ff, sync, archive, bulk-archive, verify, onboard.
featureFlags
Sakelar boolean yang dikunci oleh nama flag, diatur dengan openspec config set featureFlags.<flag> true. Tidak ada flag yang dibaca oleh CLI saat ini.
defaultStore
Id store cadangan tingkat mesin untuk resolusi root, hanya dikonsultasikan bila tidak ada flag --store, openspec/ lokal, atau pointer store: proyek yang terselesaikan. Urutan lengkapnya ada di Root resolution.
openers
Tool yang dapat dibuka oleh sebuah workset, dikunci oleh id tool. Edit openers di config.json global dengan openspec config edit di terminal Anda.
| Field | Kontrak |
|---|---|
style | workspace-file atau attach-dirs. Wajib untuk tool baru; opsional untuk tool bawaan. |
label | String non-kosong yang ditampilkan di pemilih tool. Default-nya id untuk tool baru. |
command | Nama atau path executable non-kosong. Default-nya id untuk tool baru. Letakkan argumen di args, bukan di string ini. |
args | Array string yang dilewatkan sebelum file workspace atau flag attach. Default-nya [] untuk tool baru. |
attach_flag | String non-kosong yang dipasangkan dengan setiap path member untuk attach-dirs. Default-nya --add-dir untuk tool baru. Diabaikan untuk workspace-file. |
Override tool bawaan: code, cursor, claude, dan codex mempertahankan field apa pun yang Anda lewatkan. Mengatur args mengganti seluruh daftar argumen; [] mengosongkannya.
Gaya peluncuran: workspace-file melewati path .code-workspace yang dihasilkan ke executable. attach-dirs melewati satu pasangan flag/path per member, termasuk member utama.
Ketersediaan: Opener attach-dirs, termasuk Claude Code dan Codex, dinonaktifkan secara default. Anda tidak dapat memilih atau menyimpannya dengan --tool, dan OpenSpec menolak membuka workset yang sudah menamai salah satunya. Override konfigurasi tidak mengaktifkan gaya peluncuran attach-dirs.
Validasi: field yang tidak dikenal, tipe yang tidak valid, dan tool baru tanpa style akan gagal saat perintah workset membaca tabel opener.
Contoh ini menambahkan VS Code Insiders dan melewati --new-window setiap kali opener VS Code bawaan diluncurkan:
{
"openers": {
"code-insiders": {
"style": "workspace-file",
"label": "VS Code Insiders"
},
"code": {
"args": ["--new-window"]
}
}
}Executable code-insiders atau code yang bersangkutan harus dipasang dan tersedia di PATH.
telemetry
CLI menyimpan id anonim Anda dan apakah notice first-run sudah ditampilkan. Atur telemetry.enabled ke false untuk menonaktifkan telemetri. Anda juga dapat memilih keluar dengan OPENSPEC_TELEMETRY=0 atau DO_NOT_TRACK=1 di lingkungan Anda.
Contoh
config.json yang sudah diisi:
{
"profile": "core",
"delivery": "both",
"featureFlags": {},
"telemetry": {
"anonymousId": "5f8a2c1e-4b6d-4f9a-9c3d-7e1b2a8d4c6f",
"noticeSeen": true
}
}