Skip to content

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 ​

KunciTipeWajibEfek
profilestring: core atau customTidakMemilih set workflow yang dipasang oleh openspec init
deliverystring: both, skills, atau commandsTidakMenentukan apakah init memasang skills, slash commands, atau keduanya
workflowsdaftar stringTidakDaftar workflow yang dipasang oleh profil custom
featureFlagsmap: flag → booleanTidakSakelar fitur boolean
defaultStorestringTidakStore cadangan tingkat mesin untuk resolusi root
openersmap: tool id → settingsTidakTool yang dibuka oleh workset, dan cara masing-masing diluncurkan
telemetrymapTidakOpt-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.

FieldKontrak
styleworkspace-file atau attach-dirs. Wajib untuk tool baru; opsional untuk tool bawaan.
labelString non-kosong yang ditampilkan di pemilih tool. Default-nya id untuk tool baru.
commandNama atau path executable non-kosong. Default-nya id untuk tool baru. Letakkan argumen di args, bukan di string ini.
argsArray string yang dilewatkan sebelum file workspace atau flag attach. Default-nya [] untuk tool baru.
attach_flagString 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:

json
{
  "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:

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