Skip to content

Настройки CLI (config.json) ​

Каждое поле config.json: как ведёт себя CLI openspec на вашей машине.

Расположение ​

CLI хранит свои машинные настройки в ~/.config/openspec/config.json на macOS и Linux, и в %APPDATA%\openspec\config.json на Windows. $XDG_CONFIG_HOME имеет приоритет на всех платформах при установке. Команда openspec config читает и редактирует этот файл.

Поля ​

КлючТипОбязательноеНазначение
profileстрока: core или customНетВыбирает набор рабочих процессов, которые устанавливает openspec init
deliveryстрока: both, skills или commandsНетУстанавливает ли init навыки, слэш-команды или и то и другое
workflowsсписок строкНетСписок рабочих процессов, которые устанавливает профиль custom
featureFlagsсловарь: флаг → булево значениеНетБулевы переключатели функций
defaultStoreстрокаНетМашинный резервный store для определения root
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 ​

Машинный резервный store id для определения root; учитывается только тогда, когда не срабатывает ни флаг --store, ни локальный openspec/, ни проектный указатель store:. Полная последовательность описана в Определение root.

openers ​

Инструменты, в которых workset может быть открыт, привязанные к id инструмента. Редактируйте openers в глобальном config.json с помощью openspec config edit в вашем терминале.

ПолеОписание
styleworkspace-file или attach-dirs. Обязательно для нового инструмента; необязательно для встроенного.
labelНепустая строка, отображаемая в выборе инструмента. По умолчанию равна id для нового инструмента.
commandНепустое имя или путь к исполняемому файлу. По умолчанию равна id для нового инструмента. Аргументы указывайте в args, а не в этой строке.
argsМассив строк, передаваемых перед файлом workspace или флагами attach. По умолчанию — [] для нового инструмента.
attach_flagНепустая строка, сопоставляемая с каждым путём участника для attach-dirs. По умолчанию — --add-dir для нового инструмента. Игнорируется для workspace-file.

Переопределение встроенных: code, cursor, claude и codex сохраняют любые поля, которые вы не указали. Установка args заменяет весь список аргументов; [] очищает его.

Стили запуска: workspace-file передаёт путь сгенерированного .code-workspace файла исполняемому файлу. attach-dirs передаёт одну пару флаг/путь для каждого участника, включая основного.

Доступность: attach-dirs openers, включая Claude Code и Codex, отключены по умолчанию. Вы не можете выбрать или сохранить их с помощью --tool, а OpenSpec отказывается открывать workset, который уже указывает на них. Переопределения конфигурации не включают стиль запуска attach-dirs.

Валидация: неизвестные поля, неверные типы и новый инструмент без style вызывают ошибку при чтении таблицы opener'ов командой workset.

Этот пример добавляет VS Code Insiders и передаёт --new-window при каждом запуске встроенного opener'а VS Code:

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