Skip to content

Довідник CLI

CLI OpenSpec (openspec) надає команди термінала для налаштування проєкту, валідації, перегляду стану та керування. Ці команди доповнюють AI-команди зі слешем (такі як /opsx:propose), описані в розділі Команди.

Підсумок

КатегоріяКомандиПризначення
Налаштуванняinit, updateІніціалізація та оновлення OpenSpec у вашому проєкті
Робочі простори (бета)workspace setup, workspace list, workspace ls, workspace link, workspace relink, workspace doctor, workspace update, workspace openНалаштування локальних представлень пов'язаних репозиторіїв або тек
Спільний контекст (бета)context-store setup, context-store register, context-store unregister, context-store remove, context-store list, context-store doctor, initiative create, initiative show, initiative listКерування реєстраціями локального context-store та довготривалим контекстом ініціатив
Переглядlist, view, showОгляд змін та специфікацій
ВалідаціяvalidateПеревірка змін та специфікацій на наявність проблем
Життєвий циклarchiveЗавершення виконаних змін
Робочий процесnew change, set change, status, instructions, templates, schemasПідтримка робочого процесу на основі артефактів
Схемиschema init, schema fork, schema validate, schema whichСтворення та керування користувацькими робочими процесами
КонфігураціяconfigПерегляд та зміна налаштувань
Утилітиfeedback, completionЗворотний зв'язок та інтеграція з оболонкою

Людина vs Команди агентів

Більшість CLI-команд призначені для використання людиною в терміналі. Деякі команди також підтримують використання агентами/скриптами через JSON-вивід.

Команди лише для людей

Ці команди є інтерактивними та призначені для використання в терміналі:

КомандаПризначення
openspec initІніціалізація проєкту (інтерактивні підказки)
openspec viewІнтерактивна панель
openspec config editВідкрити конфігурацію в редакторі
openspec feedbackНадіслати відгук через GitHub
openspec completion installВстановити автодоповнення для оболонки

Команди, сумісні з агентами

Ці команди підтримують --json вивід для програмного використання AI-агентами та скриптами:

КомандаВикористання людиноюВикористання агентом
openspec listПерегляд змін/специфікацій--json для структурованих даних
openspec show <item>Читання вмісту--json для аналізу
openspec validateПеревірка наявності проблем--all --json для масової валідації
openspec statusПерегляд прогресу артефактів--json для структурованого статусу
openspec instructionsОтримання наступних кроків--json для інструкцій агента
openspec templatesПошук шляхів до шаблонів--json для визначення шляхів
openspec schemasСписок доступних схем--json для виявлення схем
openspec workspace setup --no-interactiveСтворення робочого простору з явними вхідними даними--json для структурованого виводу налаштування
openspec workspace listПерегляд відомих робочих просторів--json для типізованих об'єктів робочого простору
openspec workspace linkПрив'язка репозиторію або папки--json для структурованого виводу прив'язки
openspec workspace relinkВідновлення прив'язаного шляху--json для структурованого виводу прив'язки
openspec workspace doctorПеревірка одного робочого простору--json для структурованого виводу статусу
openspec workspace updateОновлення локальних рекомендацій та навичок агентів робочого простору--tools вибирає агентів; профіль вибирає робочі процеси
openspec context-store setup <id>Створення локального сховища контексту--json з явними вхідними даними для структурованого виводу налаштування
openspec context-store register <path>Реєстрація існуючого сховища контексту--json для структурованого виводу реєстрації
openspec context-store unregister <id>Видалення реєстрації локального сховища контексту--json для структурованого виводу очищення
openspec context-store remove <id>Видалення зареєстрованої папки локального сховища контексту--yes --json для неінтерактивного видалення
openspec context-store listПерегляд зареєстрованих сховищ контексту--json для структурованих реєстрацій
openspec context-store doctorПеревірка налаштування локального сховища--json для структурованої діагностики
openspec initiative listПерегляд спільних ініціатив--json для структурованих записів ініціатив
openspec initiative show <id>Вирішення ініціативи--json для канонічних шляхів та метаданих
openspec new change <id>Створення локального каркасу змін у репозиторії--json, плюс --initiative для посилань на спільну координацію
openspec set change <id>Оновлення впроваджених метаданих змін--json, плюс --initiative для посилань на спільну координацію

Глобальні параметри

Ці параметри працюють з усіма командами:

ПараметрОпис
--version, -VПоказати номер версії
--no-colorВимкнути кольоровий вивід
--help, -hПоказати довідку для команди

Команди налаштування

openspec init

Ініціалізація OpenSpec у вашому проєкті. Створює структуру папок та налаштовує інтеграції з AI-інструментами.

Поведінка за замовчуванням використовує глобальні налаштування конфігурації: профіль core, доставка both, робочі процеси propose, explore, apply, sync, archive.

openspec init [path] [options]

Аргументи:

АргументОбов'язковийОпис
pathНіЦільова директорія (за замовчуванням: поточна директорія)

Параметри:

ПараметрОпис
--tools <list>Налаштувати AI-інструменти неінтерактивно. Використовуйте all, none або список через кому
--forceАвтоматичне очищення застарілих файлів без запитань
--profile <profile>Перевизначити глобальний профіль для цього запуску init (core або custom)

--profile custom використовує будь-які робочі процеси, які наразі вибрані в глобальній конфігурації (openspec config profile).

Підтримувані ідентифікатори інструментів (--tools): amazon-q, antigravity, auggie, bob, claude, cline, codex, forgecode, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, iflow, junie, kilocode, kimi, kiro, opencode, pi, qoder, lingma, qwen, roocode, trae, windsurf

Приклади:

bash
# Інтерактивна ініціалізація
openspec init

# Ініціалізація в конкретній директорії
openspec init ./my-project

# Неінтерактивне налаштування для Claude та Cursor
openspec init --tools claude,cursor

# Налаштування для всіх підтримуваних інструментів
openspec init --tools all

# Перевизначення профілю для цього запуску
openspec init --profile core

# Пропуск запитань та автоматичне очищення застарілих файлів
openspec init --force

Що створюється:

openspec/
├── specs/              # Ваші специфікації (джерело істини)
├── changes/            # Запропоновані зміни
└── config.yaml         # Конфігурація проєкту

.claude/skills/         # Навички Claude Code (якщо вибрано claude)
.cursor/skills/         # Навички Cursor (якщо вибрано cursor)
.cursor/commands/       # OPSX-команди Cursor (якщо доставка включає команди)
... (інші конфігурації інструментів)

openspec update

Оновлення файлів інструкцій OpenSpec після оновлення CLI. Повторно генерує файли конфігурації AI-інструментів, використовуючи ваш поточний глобальний профіль, вибрані робочі процеси та режим доставки.

openspec update [path] [options]

Аргументи:

АргументОбов'язковийОпис
pathНіЦільова директорія (за замовчуванням: поточна директорія)

Параметри:

ПараметрОпис
--forceПримусове оновлення, навіть якщо файли актуальні

Приклад:

bash
# Оновлення файлів інструкцій після оновлення npm
npm update @fission-ai/openspec
openspec update

Команди робочого простору

Команди робочого простору знаходяться в бета-версії. Нижче наведена модель локального перегляду є поточним напрямком, але зовнішня автоматизація, інтеграції та довготривалі робочі процеси все ще повинні розглядати поведінку команд, файли стану та JSON-вивід як такі, що розвиваються.

Робочі простори координації є машинно-локальними представленнями пов'язаних репозиторіїв або папок. Видимість робочого простору не є фіксацією змін: прив'яжіть репозиторії або папки, які OpenSpec повинен знати, а потім створюйте зміни, коли будете готові планувати конкретну роботу.

openspec workspace setup

Створення робочого простору в стандартному розташуванні робочого простору OpenSpec та прив'язка принаймні одного існуючого репозиторію або папки.

bash
openspec workspace setup [options]

Параметри:

ПараметрОпис
--name <name>Назва робочого простору. Назви повинні бути у форматі kebab-case
--link <path>Прив'язати існуючий репозиторій або папку та визначити назву прив'язки з назви папки
--link <name>=<path>Прив'язати існуючий репозиторій або папку з явною назвою прив'язки
--opener <id>Зберегти бажаний відкривач під час неінтерактивного налаштування: codex-cli, claude, github-copilot або editor
--tools <tools>Встановити локальні навички OpenSpec для агентів у робочому просторі. Використовуйте all, none або список через кому ідентифікаторів інструментів
--no-interactiveВимкнути запити; вимагає --name та принаймні один --link
--jsonВивід у форматі JSON; вимагає --no-interactive

Приклади:

bash
openspec workspace setup
openspec workspace setup --no-interactive --name platform --link /repos/api --link web=/repos/web
openspec workspace setup --no-interactive --name platform --link /repos/api --opener codex-cli
openspec workspace setup --no-interactive --name platform --link /repos/api --tools codex,claude
openspec workspace setup --no-interactive --json --name checkout --link /repos/platform/apps/checkout

Інтерактивне налаштування запитує бажаний відкривач та може встановлювати локальні навички OpenSpec для вибраних агентів у робочому просторі. Неінтерактивне налаштування зберігає бажаний відкривач лише тоді, коли надано --opener; в іншому випадку workspace open запитуватиме пізніше в інтерактивних терміналах, коли підтримуваний відкривач доступний, або проситиме скрипти передати --agent <tool> або --editor.

Встановлення навичок робочого простору в цій бета-версії є лише навичками: навіть якщо глобальна доставка є commands або both, налаштування робочого простору записує папки навичок агентів у корені робочого простору та не створює файлів команд з косою рискою. Активний глобальний профіль вибирає, які навички робочих процесів встановлюються; --tools вибирає, які агенти їх отримують. Якщо --tools опущено в неінтерактивному налаштуванні, навички не встановлюються, і workspace update --tools <ids> може додати їх пізніше.

openspec workspace list

Список відомих робочих просторів OpenSpec з локального реєстру.

bash
openspec workspace list [--json]
openspec workspace ls [--json]

Список показує розташування кожного робочого простору та пов'язані репозиторії або папки. Застарілі записи реєстру повідомляються, але не змінюються.

Запис існуючого репозиторію або папки для одного робочого простору.

bash
openspec workspace link [name] <path> [options]

Параметри:

ПараметрОпис
--workspace <name>Вибрати відомий робочий простір з локального реєстру
--jsonВивід у форматі JSON
--no-interactiveВимкнути запити вибору робочого простору

Приклади:

bash
openspec workspace link /repos/api
openspec workspace link api-service /repos/api
openspec workspace link --workspace platform /repos/platform/apps/checkout

Шлях повинен вже існувати. Відносні шляхи вирішуються відносно поточної директорії команди перед тим, як OpenSpec зберігає перевірений абсолютний шлях у машинно-локальному стані робочого простору. Пов'язані шляхи можуть бути повними репозиторіями, пакетами, сервісами, додатками або папками без стану openspec/ на рівні репозиторію.

Відновлення або зміна локального шляху для існуючої прив'язки.

bash
openspec workspace relink <name> <path> [options]

Шлях повинен вже існувати. Relink оновлює лише машинно-локальний шлях для стабільної назви прив'язки.

openspec workspace doctor

Перевірка того, що один робочий простір може вирішити на поточній машині.

bash
openspec workspace doctor [options]

Doctor показує розташування робочого простору, пов'язані репозиторії або папки, відсутні шляхи, шляхи специфікацій на рівні репозиторію, якщо вони є, та запропоновані виправлення. JSON-вивід також включає шлях планування робочого простору для сумісності. Він повідомляє лише про проблеми; він не виправляє їх автоматично.

Команди, яким потрібен один робочий простір, використовують поточний робочий простір, коли запускаються зсередини папки або піддиректорії робочого простору. З іншого місця передайте --workspace <name>, виберіть з вибірника в інтерактивному терміналі або покладіться на єдиний відомий робочий простір, коли існує лише один. У режимі --json або --no-interactive неоднозначний вибір завершується помилкою структурованого статусу та пропонує --workspace <name>.

JSON-відповіді використовують типізовані об'єкти плюс масиви status. Основні дані знаходяться в workspace, workspaces або link; попередження та помилки знаходяться в status.

openspec workspace update

Оновлення локальних рекомендацій OpenSpec та навичок агентів робочого простору.

bash
openspec workspace update [name] [options]

Параметри:

ПараметрОпис
--workspace <name>Вибрати відомий робочий простір з локального реєстру
--tools <tools>Вибрати агентів для навичок робочого простору. Використовуйте all, none або список через кому ідентифікаторів інструментів
--jsonВивід у форматі JSON
--no-interactiveВимкнути запити вибору робочого простору

Приклади:

bash
openspec workspace update
openspec workspace update platform
openspec workspace update --workspace platform --tools codex,claude
openspec workspace update --workspace platform --tools none

workspace update оновлює згенерований блок рекомендацій робочого простору та локальну відкриту поверхню. Для навичок агентів він повторно використовує збережений вибір агента навичок робочого простору, коли --tools опущено. Передача --tools замінює це збережене виділення. Він оновлює лише керовані директорії навичок робочих процесів OpenSpec у корені робочого простору, видаляє не вибрані керовані навички робочих процесів та залишає пов'язані репозиторії та папки недоторканими.

Запуск openspec update зсередини робочого простору перенаправляє на openspec workspace update; запускайте openspec update всередині проєктів на рівні репозиторію, коли потрібно оновити файли інструментів, що належать репозиторію.

openspec workspace open

Відкриття робочого набору через збережений бажаний відкривач, одноразове перевизначення агента або режим редактора VS Code.

bash
openspec workspace open [name] [options]

Параметри:

ПараметрОпис
--workspace <name>Псевдонім для позиційної назви робочого простору
--initiative <id>Відкрити ініціативу як локальне представлення робочого простору. Приймає <id> або <store>/<id>
--store <id>Ідентифікатор зареєстрованого сховища контексту для --initiative
--store-path <path>Існуючий корінь локального сховища контексту для --initiative
--agent <tool>Одноразове перевизначення агента: codex-cli, claude або github-copilot
--editorВідкрити підтримуваний файл робочого простору VS Code як звичайне представлення робочого простору редактора
--no-interactiveВимкнути запити вибору робочого простору та відкривача

Приклади:

bash
openspec workspace open
openspec workspace open platform
openspec workspace open platform --agent github-copilot
openspec workspace open --agent codex-cli
openspec workspace open --editor
openspec workspace open --initiative billing-launch --store platform
openspec workspace open --initiative platform/billing-launch

workspace open використовує поточний робочий простір, коли запускається зсередини одного, автоматично вибирає єдиний відомий робочий простір, коли запускається з іншого місця, та запитує користувача зробити вибір, коли відомо кілька робочих просторів. --agent та --editor не змінюють збережений бажаний відкривач. Передача обох перевизначень відкривача є помилкою; виберіть або --agent <tool>, або --editor.

Коли використовується --initiative, OpenSpec готує або вибирає приватне локальне представлення робочого простору для цієї ініціативи. Вибрані реєстром сховища зберігаються за ідентифікатором; --store-path зберігає селектор шляху, локальний для часу виконання, оскільки представлення робочого простору є приватним локальним станом.

OpenSpec підтримує <workspace-name>.code-workspace у корені робочого простору для відкриття VS Code редактором та GitHub Copilot-in-VS-Code. Цей файл є машинно-локальним станом представлення робочого простору.

Підтримуваний робочий простір VS Code спочатку перераховує дійсні пов'язані репозиторії або папки, потім контекст ініціативи, коли він прикріплений, потім файли робочого простору OpenSpec. VS Code відображає ці записи як мультикореневий робочий простір.

Відкриття кореневого робочого простору робить пов'язані репозиторії або папки видимими для дослідження та контексту. Редагування реалізації слід починати лише після явного запиту користувача та звичайного робочого процесу реалізації OpenSpec.


Команди Спільного Контексту

Контекстні сховища та ініціативи є бета-майданчиками для координації. Контекстне сховище — це локальна реєстрація для постійного спільного контексту, зазвичай папка або клон, що підтримується Git. Ініціатива — це спільний контекст координації всередині контекстного сховища; локальні зміни в репозиторії можуть посилатися на нього без копіювання спільного плану в кожен репозиторій.

openspec context-store setup

Створити та зареєструвати локальне контекстне сховище. Якщо в терміналі немає аргументів, OpenSpec проведе користувача через процес налаштування. Агенти та скрипти мають передавати явні вхідні дані та використовувати --json.

bash
openspec context-store setup [id] [options]

Параметри:

ПараметрОпис
--path <path>Шлях до папки контекстного сховища; за замовчуванням використовується керований каталог локальних даних OpenSpec
--init-gitІніціалізувати репозиторій Git у контекстному сховищі
--no-init-gitНе ініціалізувати репозиторій Git
--jsonВивести JSON

Якщо --path не вказано, setup створює сховище в getGlobalDataDir()/context-stores/<id>: $XDG_DATA_HOME/openspec/context-stores/<id>, якщо встановлено XDG_DATA_HOME, або ~/.local/share/openspec/context-stores/<id> як запасний варіант для Unix-подібних систем. Використовуйте --path, коли потрібно розмістити сховище у видимому клоні або папці, специфічній для команди.

Приклади:

bash
openspec context-store setup
openspec context-store setup team-context
openspec context-store setup team-context --path /repos/team-context --no-init-git
openspec context-store setup team-context --json --no-init-git

openspec context-store register

Зареєструвати існуючу папку локального контекстного сховища.

bash
openspec context-store register [path] [options]

Параметри:

ПараметрОпис
--id <id>Ідентифікатор контекстного сховища; за замовчуванням використовується метаданих сховища або назва папки
--jsonВивести JSON

openspec context-store unregister

Видалити з пам'яті реєстрацію локального контекстного сховища без видалення файлів.

bash
openspec context-store unregister <id> [--json]

Використовуйте цю команду, коли сховище було переміщено, склоновано в інше місце, або воно більше не повинно відображатися OpenSpec на цьому комп'ютері.

openspec context-store remove

Видалити з пам'яті реєстрацію локального контекстного сховища та видалити його локальну папку.

bash
openspec context-store remove <id> [--yes] [--json]

remove показує точну папку перед видаленням в інтерактивному терміналі. Агенти, скрипти та виклики JSON повинні передавати --yes для підтвердження видалення. OpenSpec відмовляється видаляти папку, яка не містить відповідних метаданих контекстного сховища.

openspec context-store list

Перелічити локально зареєстровані контекстні сховища.

bash
openspec context-store list [--json]
openspec context-store ls [--json]

openspec context-store doctor

Перевірити реєстрацію локального контекстного сховища, метадані та наявність Git.

bash
openspec context-store doctor [id] [--json]

Doctor є лише діагностичним інструментом; він повідомляє про відсутні кореневі теки, невідповідності метаданих та недійсний стан локального реєстру без внесення змін до сховища.

openspec initiative create

Створити ініціативу в контекстному сховищі.

bash
openspec initiative create <id> --title <title> --summary <summary> [options]

Параметри:

ПараметрОпис
--store <id>Ідентифікатор контекстного сховища з локального реєстру
--store-path <path>Існуючий кореневий шлях локального контекстного сховища
--title <title>Назва ініціативи
--summary <summary>Опис ініціативи
--jsonВивести JSON

openspec initiative list

Перелічити ініціативи. Без селектора ця команда шукає у всіх зареєстрованих контекстних сховищах і повідомляє про попередження про часткове читання в status.

bash
openspec initiative list [options]
openspec initiative ls [options]

Параметри:

ПараметрОпис
--store <id>Перелічити одне зареєстроване контекстне сховище
--store-path <path>Перелічити один існуючий кореневий шлях локального контекстного сховища
--jsonВивести JSON

openspec initiative show

Визначити ініціативу та вивести її канонічне розташування.

bash
openspec initiative show <id> [options]
openspec initiative show <store>/<id> [options]

Без --store OpenSpec шукає в зареєстрованих контекстних сховищах. Якщо однаковий ідентифікатор ініціативи існує в кількох сховищах, передайте --store <id> або використовуйте форму запису <store>/<id>.


Команди перегляду

openspec list

Вивести список змін або специфікацій у вашому проєкті.

openspec list [options]

Опції:

ОпціяОпис
--specsВивести специфікації замість змін
--changesВивести зміни (за замовчуванням)
--sort <order>Сортувати за recent (за замовчуванням) або name
--jsonВивести у форматі JSON

Приклади:

bash
# Вивести всі активні зміни
openspec list

# Вивести всі специфікації
openspec list --specs

# Вивід у форматі JSON для скриптів
openspec list --json

Вивід (текст):

Активні зміни:
  add-dark-mode     Підтримка перемикання теми інтерфейсу
  fix-login-bug     Обробка тайм-ауту сеансу

openspec view

Відобразити інтерактивну панель для перегляду специфікацій та змін.

openspec view

Відкриває термінальний інтерфейс для навігації специфікаціями та змінами вашого проєкту.


openspec show

Відобразити деталі зміни або специфікації.

openspec show [item-name] [options]

Аргументи:

АргументОбов'язковийОпис
item-nameНіНазва зміни або специфікації (пропонується, якщо опущено)

Опції:

ОпціяОпис
--type <type>Вказати тип: change або spec (визначається автоматично, якщо однозначно)
--jsonВивести у форматі JSON
--no-interactiveВимкнути запити

Опції, специфічні для змін:

ОпціяОпис
--deltas-onlyПоказати лише дельта-специфікації (режим JSON)

Опції, специфічні для специфікацій:

ОпціяОпис
--requirementsПоказати лише вимоги, виключити сценарії (режим JSON)
--no-scenariosВиключити вміст сценаріїв (режим JSON)
-r, --requirement <id>Показати конкретну вимогу за 1-based індексом (режим JSON)

Приклади:

bash
# Інтерактивний вибір
openspec show

# Показати конкретну зміну
openspec show add-dark-mode

# Показати конкретну специфікацію
openspec show auth --type spec

# Вивід у форматі JSON для аналізу
openspec show add-dark-mode --json

Команди валідації

openspec validate

Валідувати зміни та специфікації на наявність структурних проблем.

openspec validate [item-name] [options]

Аргументи:

АргументОбов'язковийОпис
item-nameНіКонкретний елемент для валідації (пропонується, якщо опущено)

Опції:

ОпціяОпис
--allВалідувати всі зміни та специфікації
--changesВалідувати всі зміни
--specsВалідувати всі специфікації
--type <type>Вказати тип, коли назва неоднозначна: change або spec
--strictУвімкнути строгий режим валідації
--jsonВивести у форматі JSON
--concurrency <n>Максимальна кількість паралельних валідацій (за замовчуванням: 6, або змінна оточення OPENSPEC_CONCURRENCY)
--no-interactiveВимкнути запити

Приклади:

bash
# Інтерактивна валідація
openspec validate

# Валідувати конкретну зміну
openspec validate add-dark-mode

# Валідувати всі зміни
openspec validate --changes

# Валідувати все з виводом у форматі JSON (для CI/скриптів)
openspec validate --all --json

# Строга валідація з підвищеною паралельністю
openspec validate --all --strict --concurrency 12

Вивід (текст):

Валідація add-dark-mode...
  ✓ proposal.md валідний
  ✓ specs/ui/spec.md валідний
  ⚠ design.md: відсутній розділ "Технічний підхід"

Знайдено 1 попередження

Вивід (JSON):

json
{
  "version": "1.0.0",
  "results": {
    "changes": [
      {
        "name": "add-dark-mode",
        "valid": true,
        "warnings": ["design.md: відсутній розділ 'Технічний підхід'"]
      }
    ]
  },
  "summary": {
    "total": 1,
    "valid": 1,
    "invalid": 0
  }
}

Команди життєвого циклу

openspec archive

Архівувати завершену зміну та об'єднати дельта-специфікації в основні специфікації.

openspec archive [change-name] [options]

Аргументи:

АргументОбов'язковийОпис
change-nameНіЗміна для архівації (пропонується, якщо опущено)

Опції:

ОпціяОпис
-y, --yesПропустити запити на підтвердження
--skip-specsПропустити оновлення специфікацій (для змін, що стосуються лише інфраструктури/інструментів/документації)
--no-validateПропустити валідацію (потребує підтвердження)

Приклади:

bash
# Інтерактивна архівація
openspec archive

# Архівувати конкретну зміну
openspec archive add-dark-mode

# Архівація без запитів (CI/скрипти)
openspec archive add-dark-mode --yes

# Архівація зміни інструментів, яка не впливає на специфікації
openspec archive update-ci-config --skip-specs

Що він робить:

  1. Валідує зміну (якщо не вказано --no-validate)
  2. Запитує підтвердження (якщо не вказано --yes)
  3. Об'єднує дельта-специфікації до openspec/specs/
  4. Переміщає папку зміни до openspec/changes/archive/YYYY-MM-DD-<name>/

Команди робочого процесу

Ці команди підтримують робочий процес OPSX на основі артефактів. Вони корисні як для людей, що перевіряють прогрес, так і для агентів, що визначають наступні кроки.

openspec new change

Створити локальну для репозиторію директорію зміни та опціональний зафіксований метадату.

bash
openspec new change <name> [options]

Опції:

ОпціяОпис
--description <text>Опис для додавання до README.md
--goal <text>Ціль продукту робочого простору для зберігання разом із зміною
--areas <names>Розділений комами перелік назв посилань робочого простору, що зазнали змін
--initiative <id>Пов'язати локальну для репозиторію зміну з ініціативою
--store <id>Ідентифікатор сховища контексту для --initiative
--store-path <path>Існуючий кореневий шлях локального сховища контексту для --initiative
--schema <name>Схема робочого процесу для використання
--jsonВивести JSON

Приклади:

bash
openspec new change add-billing-api --initiative billing-launch --store platform
openspec new change add-billing-api --initiative platform/billing-launch --json

openspec set change

Оновити зафіксовану метадату локальної для репозиторію зміни без її повторного створення.

bash
openspec set change <name> [options]

Опції:

ОпціяОпис
--initiative <id>Пов'язати локальну для репозиторію зміну з ініціативою
--store <id>Ідентифікатор сховища контексту для --initiative
--store-path <path>Існуючий кореневий шлях локального сховища контексту для --initiative
--jsonВивести JSON

set change --initiative є ідемпотентним, коли запитуване посилання вже існує, і відмовляється замінювати інше існуюче посилання на ініціативу.

openspec status

Відобразити статус виконання артефактів для зміни.

openspec status [options]

Опції:

ОпціяОпис
--change <id>Назва зміни (пропонується, якщо опущено)
--schema <name>Заміщення схеми (автовизначається з конфігурації зміни)
--jsonВивести у форматі JSON

Приклади:

bash
# Інтерактивна перевірка статусу
openspec status

# Статус для конкретної зміни
openspec status --change add-dark-mode

# JSON для використання агентом
openspec status --change add-dark-mode --json

Вивід (текст):

Зміна: add-dark-mode
Схема: spec-driven
Прогрес: 2/4 артефакти завершено

[x] proposal
[ ] design
[x] specs
[-] tasks (заблоковано: design)

Вивід (JSON):

json
{
  "changeName": "add-dark-mode",
  "schemaName": "spec-driven",
  "isComplete": false,
  "applyRequires": ["tasks"],
  "artifacts": [
    {"id": "proposal", "outputPath": "proposal.md", "status": "done"},
    {"id": "design", "outputPath": "design.md", "status": "ready"},
    {"id": "specs", "outputPath": "specs/**/*.md", "status": "done"},
    {"id": "tasks", "outputPath": "tasks.md", "status": "blocked", "missingDeps": ["design"]}
  ]
}

openspec instructions

Отримати збагачені інструкції для створення артефакту або застосування завдань. Використовується ШІ-агентами для розуміння, що створювати далі.

openspec instructions [artifact] [options]

Аргументи:

АргументОбов'язковийОпис
artifactНіID артефакту: proposal, specs, design, tasks або apply

Опції:

ОпціяОпис
--change <id>Назва зміни (обов'язково в неінтерактивному режимі)
--schema <name>Заміщення схеми
--jsonВивести у форматі JSON

Особливий випадок: Використовуйте apply як артефакт для отримання інструкцій із впровадження завдань.

Приклади:

bash
# Отримати інструкції для наступного артефакту
openspec instructions --change add-dark-mode

# Отримати інструкції для конкретного артефакту
openspec instructions design --change add-dark-mode

# Отримати інструкції з впровадження/реалізації
openspec instructions apply --change add-dark-mode

# JSON для споживання агентом
openspec instructions design --change add-dark-mode --json

Вивід включає:

  • Вміст шаблону для артефакту
  • Контекст проєкту з конфігурації
  • Вміст артефактів-залежностей
  • Правила для кожного артефакту з конфігурації

openspec templates

Показати вирішені шляхи до шаблонів для всіх артефактів у схемі.

openspec templates [options]

Опції:

ОпціяОпис
--schema <name>Схема для перегляду (за замовчуванням: spec-driven)
--jsonВивести у форматі JSON

Приклади:

bash
# Показати шляхи до шаблонів для схеми за замовчуванням
openspec templates

# Показати шаблони для користувацької схеми
openspec templates --schema my-workflow

# JSON для програмного використання
openspec templates --json

Вивід (текст):

Схема: spec-driven

Шаблони:
  proposal  → ~/.openspec/schemas/spec-driven/templates/proposal.md
  specs     → ~/.openspec/schemas/spec-driven/templates/specs.md
  design    → ~/.openspec/schemas/spec-driven/templates/design.md
  tasks     → ~/.openspec/schemas/spec-driven/templates/tasks.md

openspec schemas

Вивести доступні схеми робочого процесу з їх описами та потоками артефактів.

openspec schemas [options]

Опції:

ОпціяОпис
--jsonВивести у форматі JSON

Приклад:

bash
openspec schemas

Вивід:

Доступні схеми:

  spec-driven (package)
    Робочий процес розробки на основі специфікацій за замовчуванням
    Потік: proposal → specs → design → tasks

  my-custom (project)
    Користувацький робочий процес для цього проєкту
    Потік: research → proposal → tasks

Команди схем

Команди для створення та керування власними схемами робочих процесів.

openspec schema init

Створити нову локальну схему проекту.

openspec schema init <name> [options]

Аргументи:

АргументОбов'язковийОпис
nameТакНазва схеми (kebab-case)

Параметри:

ПараметрОпис
--description <text>Опис схеми
--artifacts <list>Список ідентифікаторів артефактів через кому (за замовчуванням: proposal,specs,design,tasks)
--defaultВстановити як схему проекту за замовчуванням
--no-defaultНе пропонувати встановити як схему за замовчуванням
--forceПерезаписати існуючу схему
--jsonВивести як JSON

Приклади:

bash
# Інтерактивне створення схеми
openspec schema init research-first

# Неінтерактивне створення з визначеними артефактами
openspec schema init rapid \
  --description "Rapid iteration workflow" \
  --artifacts "proposal,tasks" \
  --default

Що створюється:

openspec/schemas/<name>/
├── schema.yaml           # Визначення схеми
└── templates/
    ├── proposal.md       # Шаблон для кожного артефакту
    ├── specs.md
    ├── design.md
    └── tasks.md

openspec schema fork

Скопіювати існуючу схему до вашого проекту для налаштування.

openspec schema fork <source> [name] [options]

Аргументи:

АргументОбов'язковийОпис
sourceТакСхема для копіювання
nameНіНазва нової схеми (за замовчуванням: <source>-custom)

Параметри:

ПараметрОпис
--forceПерезаписати існуючу директорію призначення
--jsonВивести як JSON

Приклад:

bash
# Розгалужити вбудовану схему spec-driven
openspec schema fork spec-driven my-workflow

openspec schema validate

Перевірити структуру та шаблони схеми.

openspec schema validate [name] [options]

Аргументи:

АргументОбов'язковийОпис
nameНіСхема для перевірки (якщо не вказано, перевіряються всі)

Параметри:

ПараметрОпис
--verboseПоказати детальні кроки валідації
--jsonВивести як JSON

Приклад:

bash
# Перевірити конкретну схему
openspec schema validate my-workflow

# Перевірити всі схеми
openspec schema validate

openspec schema which

Показати, звідки береться схема (корисно для налагодження пріоритетів).

openspec schema which [name] [options]

Аргументи:

АргументОбов'язковийОпис
nameНіНазва схеми

Параметри:

ПараметрОпис
--allПерелічити всі схеми з їхніми джерелами
--jsonВивести як JSON

Приклад:

bash
# Перевірити звідки походить схема
openspec schema which spec-driven

Вивід:

spec-driven resolves from: package
  Source: /usr/local/lib/node_modules/@fission-ai/openspec/schemas/spec-driven

Пріоритет схем:

  1. Проект: openspec/schemas/<name>/
  2. Користувач: ~/.local/share/openspec/schemas/<name>/
  3. Пакет: Вбудовані схеми

Команди конфігурації

openspec config

Перегляд та зміна глобальної конфігурації OpenSpec.

openspec config <subcommand> [options]

Підкоманди:

ПідкомандаОпис
pathПоказати розташування конфігураційного файлу
listПоказати всі поточні налаштування
get <key>Отримати конкретне значення
set <key> <value>Встановити значення
unset <key>Видалити ключ
resetСкинути до стандартних значень
editВідкрити в $EDITOR
profile [preset]Інтерактивно або за допомогою пресету налаштувати профіль робочого процесу

Приклади:

bash
# Показати шлях до конфігураційного файлу
openspec config path

# Показати всі налаштування
openspec config list

# Отримати конкретне значення
openspec config get telemetry.enabled

# Встановити значення
openspec config set telemetry.enabled false

# Явно встановити значення рядка
openspec config set user.name "My Name" --string

# Видалити власне налаштування
openspec config unset user.name

# Скинути всю конфігурацію
openspec config reset --all --yes

# Редагувати конфігурацію у вашому редакторі
openspec config edit

# Налаштувати профіль за допомогою майстра на основі дій
openspec config profile

# Швидкий пресет: перемикання робочих процесів на core (зберігає режим доставки)
openspec config profile core

openspec config profile починає з підсумку поточного стану, а потім дозволяє вибрати:

  • Змінити доставку + робочі процеси
  • Змінити лише доставку
  • Змінити лише робочі процеси
  • Зберегти поточні налаштування (вийти)

Якщо ви зберігаєте поточні налаштування, зміни не записуються і не показується запит на оновлення. Якщо немає змін конфігурації, але поточні файли проекту або робочого простору не синхронізовані з вашим глобальним профілем/доставкою, OpenSpec покаже попередження та запропонує openspec update для проектів на рівні репозиторію або openspec workspace update для керівництв та навичок на рівні робочого простору. Натискання Ctrl+C також акуратно скасовує процес (без трасування стека) та виходить з кодом 130. У контрольному списку робочих процесів [x] означає, що робочий процес вибрано у глобальній конфігурації. Щоб застосувати ці вибори до файлів проекту, виконайте openspec update (або виберіть Apply changes to this project now?, якщо запитано всередині проекту). Зсередини робочого простору використовуйте openspec workspace update для оновлення керівництв та навичок на рівні робочого простору; це залишається лише для навичок для генерованих файлів робочих процесів агента та не генерує команди косої риски робочого простору.

Інтерактивні приклади:

bash
# Оновлення лише доставки
openspec config profile
# виберіть: Change delivery only
# виберіть доставку: Skills only

# Оновлення лише робочих процесів
openspec config profile
# виберіть: Change workflows only
# увімкніть/вимкніть робочі процеси у контрольному списку, а потім підтвердіть

Службові команди

openspec feedback

Надіслати відгук про OpenSpec. Створює GitHub issue.

openspec feedback <message> [options]

Аргументи:

АргументОбов'язковийОпис
messageТакПовідомлення відгуку

Параметри:

ПараметрОпис
--body <text>Детальний опис

Вимоги: GitHub CLI (gh) повинен бути встановлений та аутентифікований.

Приклад:

bash
openspec feedback "Add support for custom artifact types" \
  --body "I'd like to define my own artifact types beyond the built-in ones."

openspec completion

Керування доповненнями оболонки для CLI OpenSpec.

openspec completion <subcommand> [shell]

Підкоманди:

ПідкомандаОпис
generate [shell]Вивести скрипт доповнення в stdout
install [shell]Встановити доповнення для вашої оболонки
uninstall [shell]Видалити встановлені доповнення

Підтримувані оболонки: bash, zsh, fish, powershell

Приклади:

bash
# Встановити доповнення (автовизначення оболонки)
openspec completion install

# Встановити для конкретної оболонки
openspec completion install zsh

# Згенерувати скрипт для ручного встановлення
openspec completion generate bash > ~/.bash_completion.d/openspec

# Видалити
openspec completion uninstall

Коди виходу

КодЗначення
0Успіх
1Помилка (помилка валідації, відсутні файли тощо)

Змінні середовища

ЗміннаОпис
OPENSPEC_TELEMETRYВстановіть 0 для вимкнення телеметрії
DO_NOT_TRACKВстановіть 1 для вимкнення телеметрії (стандартний сигнал DNT)
OPENSPEC_CONCURRENCYСтандартна конкурентність для масової валідації (за замовчуванням: 6)
EDITOR або VISUALРедактор для openspec config edit
NO_COLORВимикає кольоровий вивід, коли встановлено

Пов'язана документація