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 | string: core या custom | नहीं | वह workflow सेट चुनता है जो openspec init इंस्टॉल करता है |
delivery | string: both, skills, या commands | नहीं | init skills, slash commands, या दोनों इंस्टॉल करता है या नहीं |
workflows | strings की सूची | नहीं | वह workflow सूची जो custom profile इंस्टॉल करता है |
featureFlags | map: flag → boolean | नहीं | बूलियन फ़ीचर टॉगल |
defaultStore | string | नहीं | root resolution के लिए मशीन-स्तरीय fallback store |
openers | map: tool id → settings | नहीं | वे tools जिनमें worksets खुलते हैं, और प्रत्येक कैसे लॉन्च होता है |
telemetry | map | नहीं | Telemetry opt-out, anonymous id, और notice-seen state |
profile
openspec init कौन-सा workflow सेट इंस्टॉल करता है। डिफ़ॉल्ट core है: propose, explore, apply, update, sync, और archive। इसके बजाय custom सेट करने पर ठीक workflows सूची इंस्टॉल होती है।
delivery
init workflows को skills के रूप में, slash commands के रूप में, या दोनों के रूप में इंस्टॉल करता है या नहीं। डिफ़ॉल्ट both है।
workflows
वे workflows जो custom profile इंस्टॉल करता है; profile core होने पर इन्हें अनदेखा किया जाता है। मान्य ids: propose, explore, new, continue, apply, update, ff, sync, archive, bulk-archive, verify, onboard।
featureFlags
flag नाम से keyed बूलियन टॉगल, जिन्हें openspec config set featureFlags.<flag> true से सेट किया जाता है। आज CLI द्वारा कोई flag नहीं पढ़ा जाता।
defaultStore
root resolution के लिए मशीन-स्तरीय fallback store id, जिसे केवल तब देखा जाता है जब कोई --store flag, स्थानीय openspec/, या प्रोजेक्ट store: pointer resolve न हो। पूरी ladder है Root resolution।
openers
वे tools जिनमें एक workset खुल सकता है, tool id से keyed। अपने टर्मिनल में openspec config edit से global config.json में openers संपादित करें।
| फ़ील्ड | नियम |
|---|---|
style | workspace-file या attach-dirs। नए tool के लिए आवश्यक; built-in के लिए वैकल्पिक। |
label | tool picker में दिखाई जाने वाली गैर-खाली string। नए tool के लिए डिफ़ॉल्ट id है। |
command | गैर-खाली executable नाम या path। नए tool के लिए डिफ़ॉल्ट id है। arguments को args में रखें, इस string में नहीं। |
args | workspace file या attach flags से पहले पास की जाने वाली strings की array। नए tool के लिए डिफ़ॉल्ट [] है। |
attach_flag | attach-dirs के लिए प्रत्येक member path के साथ जोड़ी जाने वाली गैर-खाली string। नए tool के लिए डिफ़ॉल्ट --add-dir है। workspace-file के लिए अनदेखा किया जाता है। |
Built-in overrides: code, cursor, claude, और codex आपके द्वारा छोड़े गए किसी भी फ़ील्ड को बनाए रखते हैं। args सेट करने पर पूरी argument सूची बदल जाती है; [] इसे साफ़ कर देता है।
Launch styles: workspace-file generated .code-workspace path को executable को पास करता है। attach-dirs प्रत्येक member के लिए एक flag/path जोड़ी पास करता है, जिसमें primary member भी शामिल है।
Availability: attach-dirs openers, जिनमें Claude Code और Codex शामिल हैं, डिफ़ॉल्ट रूप से disabled हैं। आप --tool से उन्हें चुन या सहेज नहीं सकते, और OpenSpec ऐसे workset को खोलने से इंकार कर देता है जिसमें पहले से कोई एक नामित हो। Configuration overrides attach-dirs launch style को enable नहीं करते।
Validation: अज्ञात फ़ील्ड, अमान्य प्रकार, और style के बिना नया tool तब विफल होते हैं जब कोई workset कमांड opener table पढ़ता है।
यह उदाहरण VS Code Insiders जोड़ता है और जब भी built-in VS Code opener लॉन्च होता है तब --new-window पास करता है:
{
"openers": {
"code-insiders": {
"style": "workspace-file",
"label": "VS Code Insiders"
},
"code": {
"args": ["--new-window"]
}
}
}संबंधित code-insiders या code executable इंस्टॉल होना चाहिए और PATH पर उपलब्ध होना चाहिए।
telemetry
CLI आपकी anonymous id और यह जानकारी संग्रहीत करता है कि first-run notice दिखाया गया था या नहीं। telemetry को बंद करने के लिए telemetry.enabled को false पर सेट करें। आप अपने environment में OPENSPEC_TELEMETRY=0 या DO_NOT_TRACK=1 से भी opt out कर सकते हैं।
उदाहरण
एक भरा हुआ config.json:
{
"profile": "core",
"delivery": "both",
"featureFlags": {},
"telemetry": {
"anonymousId": "5f8a2c1e-4b6d-4f9a-9c3d-7e1b2a8d4c6f",
"noticeSeen": true
}
}