CLI ayarları (config.json)
config.json'un her alanı: openspec CLI'nin makinenizde nasıl davrandığı.
Konum
CLI, makine düzeyindeki ayarlarını macOS ve Linux'ta ~/.config/openspec/config.json, Windows'ta ise %APPDATA%\openspec\config.json yolunda saklar. Ayarlandığında $XDG_CONFIG_HOME her platformda öncelik kazanır. openspec config komutu bu dosyayı okur ve düzenler.
Alanlar
| Anahtar | Tür | Zorunlu | Etki |
|---|---|---|---|
profile | string: core veya custom | Hayır | openspec init komutunun yükleyeceği iş akışı setini seçer |
delivery | string: both, skills veya commands | Hayır | init'in skill'leri mi, slash komutlarını mı yoksa ikisini mi yükleyeceği |
workflows | string listesi | Hayır | Bir custom profilin yüklediği iş akışı listesi |
featureFlags | map: bayrak → boolean | Hayır | Boole özellik anahtarları |
defaultStore | string | Hayır | Kök çözümlemesi için makine düzeyinde yedek store |
openers | map: araç id → ayarlar | Hayır | Workset'lerin açıldığı araçlar ve her birinin nasıl başlatıldığı |
telemetry | map | Hayır | Telemetri devre dışı bırakma, anonim kimlik ve bildirim görüldü durumu |
profile
openspec init komutunun hangi iş akışı setini yükleyeceğini belirler. Varsayılan değer core'dur: propose, explore, apply, update, sync ve archive. custom olarak ayarlandığında bunun yerine tam olarak workflows listesi yüklenir.
delivery
init'in iş akışlarını skill olarak mı, slash komutları olarak mı yoksa her ikisi olarak mı yükleyeceğini belirler. Varsayılan değer both.
workflows
Bir custom profilin yüklediği iş akışları; profil core iken yok sayılır. Geçerli id'ler: propose, explore, new, continue, apply, update, ff, sync, archive, bulk-archive, verify, onboard.
featureFlags
Bayrak adına göre anahtarlanan Boole özellik anahtarları; openspec config set featureFlags.<flag> true komutuyla ayarlanır. Şu anda CLI hiçbir bayrağı okumamaktadır.
defaultStore
Kök çözümlemesi için makine düzeyindeki yedek store id'si; yalnızca --store bayrağı, yerel openspec/ dizini veya proje store: işaretçisi çözüm sağlamadığında dikkate alınır. Tam hiyerarşi Kök çözümlemesi bölümünde açıklanmıştır.
openers
Bir workset'in açılabileceği araçlar; araç id'sine göre anahtarlanır. Global config.json içindeki openers değerini terminalinizde openspec config edit komutuyla düzenleyin.
| Alan | Kural |
|---|---|
style | workspace-file veya attach-dirs. Yeni bir araç için zorunlu; yerleşik bir araç için isteğe bağlı. |
label | Araç seçicide gösterilen, boş olmayan bir string. Yeni bir araç için varsayılan olarak id kullanılır. |
command | Boş olmayan bir çalıştırılabilir dosya adı veya yolu. Yeni bir araç için varsayılan olarak id kullanılır. Argümanları bu string'e değil args alanına yazın. |
args | Workspace dosyasından veya attach bayraklarından önce iletilen string dizisi. Yeni bir araç için varsayılan değer []. |
attach_flag | attach-dirs için her üye yolu ile eşleştirilen, boş olmayan bir string. Yeni bir araç için varsayılan değer --add-dir. workspace-file için yok sayılır. |
Yerleşik geçersiz kılmalar: code, cursor, claude ve codex, atladığınız alanları korur. args ayarlamak argüman listesinin tamamının yerine geçer; [] ise listeyi temizler.
Başlatma stilleri: workspace-file, oluşturulan .code-workspace yolunu çalıştırılabilir dosyaya iletir. attach-dirs, birincil üye de dahil olmak üzere her üye için bir bayrak/yol çifti iletir.
Kullanılabilirlik: Claude Code ve Codex dahil attach-dirs açıcıları varsayılan olarak devre dışıdır. Bunları --tool ile seçemez veya kaydedemezsiniz; OpenSpec, zaten birini adıyla belirten bir workset'i açmayı reddeder. Yapılandırma geçersiz kılmaları attach-dirs başlatma stilini etkinleştirmez.
Doğrulama: Bilinmeyen alanlar, geçersiz türler ve style içermeyen yeni araçlar, bir workset komutu açıcı tablosunu okuduğunda hata verir.
Bu örnek, VS Code Insiders'ı ekler ve yerleşik VS Code açıcısı her başlatıldığında --new-window geçirir:
{
"openers": {
"code-insiders": {
"style": "workspace-file",
"label": "VS Code Insiders"
},
"code": {
"args": ["--new-window"]
}
}
}İlgili code-insiders veya code çalıştırılabilir dosyasının yüklü olması ve PATH üzerinde bulunması gerekir.
telemetry
CLI, anonim kimliğinizi ve ilk çalıştırma bildiriminin gösterilip gösterilmediğini saklar. Telemetriyi devre dışı bırakmak için telemetry.enabled değerini false olarak ayarlayın. Ortamınızda OPENSPEC_TELEMETRY=0 veya DO_NOT_TRACK=1 ayarlayarak da devre dışı bırakabilirsiniz.
Örnek
Doldurulmuş bir config.json:
{
"profile": "core",
"delivery": "both",
"featureFlags": {},
"telemetry": {
"anonymousId": "5f8a2c1e-4b6d-4f9a-9c3d-7e1b2a8d4c6f",
"noticeSeen": true
}
}