Поддерживаемые инструменты
OpenSpec работает со многими ИИ-ассистентами для написания кода. При запуске команды openspec init OpenSpec настраивает выбранные инструменты в соответствии с активным профилем/выбранным рабочим процессом и режимом доставки.
Как это работает
Для каждого выбранного инструмента OpenSpec может установить:
- Навыки (если доставка включает навыки):
.../skills/openspec-*/SKILL.md - Команды (если доставка включает команды): файлы команд
opsx-*, специфичные для инструмента
Для Codex поддерживаются только навыки: OpenSpec устанавливает .agents/skills/openspec-*/SKILL.md для Codex даже при настройке режима доставки commands, и не генерирует пользовательские файлы промптов для Codex. Существующие навыки, управляемые OpenSpec по устаревшему пути .codex/skills, синхронизируются после записи их замен; пользовательские и изменённые файлы сохраняются.
По умолчанию OpenSpec использует профиль core, который включает:
proposeexploreapplyupdatesyncarchive
Вы можете включить расширенные рабочие процессы (new, continue, ff, verify, bulk-archive, onboard) с помощью команды openspec config profile, а затем выполнить openspec update.
Как вызвать
В этих документах /opsx:propose используется как каноническое имя, но каждый инструмент записывает его так, как он загружает файл, созданный OpenSpec. Найдите путь команды вашего инструмента в Справочнике каталога инструментов ниже, а затем сопоставьте её форму здесь.
| Файл команды, который пишет OpenSpec | Вы вводите | Инструменты |
|---|---|---|
.../commands/opsx/<id>.* — папка opsx/ задаёт пространство имён | /opsx:<id> | Claude Code, CodeBuddy, Crush, Gemini CLI, Lingma, Qoder, ZCode |
.../opsx-<id>.* — имя файла является командой | /opsx-<id> | Все остальные инструменты с сгенерированными файлами команд, кроме Amazon Q и Devin |
.devin/workflows/opsx-<id>.md — читается только одним из двух агентов Devin | /opsx-<id> на Devin Desktop, /openspec-<skill> на Devin Local | Devin Desktop**** |
.amazonq/prompts/opsx-<id>.md — это подсказка (prompt), а не команда | @opsx-<id> | Amazon Q Developer |
| нет — только навыки (skills) | /openspec-<skill> | CodeArts, ForgeCode, Hermes, MiniMax Code, Mistral Vibe, Zed Agent, общие .agents |
| нет — Kimi Code | /skill:openspec-<skill> | Kimi Code |
| нет — Codex CLI | $openspec-<skill> | Codex (/openspec-<skill> не распознаётся) |
Таким образом, /opsx:propose это /opsx-propose в Cursor, @opsx-propose в Amazon Q и $openspec-propose в Codex.
Два фактора изменяются независимо, поэтому строки не объединяются:
- Имя. Строки 1–2 отличаются только тем, как файл называет команду, и префикс
opsx-<id>/opsx:<id>одинаков для всех инструментов с сгенерированными файлами команд. - Обёртка. Amazon Q загружает свои файлы в библиотеку подсказок, вызываемую через
@. Инструменты, использующие только навыки, вообще не генерируют файлы команд, поэтому их последние три строки используют имена навыков — перечисленные под Сгенерированными именами навыков — которые не соответствуют идентификаторам команд один к одному (/opsx:applyэто навыкopenspec-apply-change).
Шаблоны путей команд выше намеренно независимы от расширения (.*): расширение зависит от инструмента (.toml для Gemini CLI, .prompt для Continue, .prompt.md для Kiro и GitHub Copilot), и некоторые инструменты показывают имя с расширением в списке выбора. Сопоставляйте структуру каталога, а не расширение.
Файлы, которые генерирует OpenSpec, и подсказка «Начало работы», выводимая после настройки, уже используют правильную форму для выбранных вами инструментов — поэтому самый быстрый способ — прочитать эту подсказку.
Справочник каталога инструментов
| Инструмент (ID) | Шаблон пути навыков | Шаблон пути команд |
|---|---|---|
Amazon Q Developer (amazon-q) | .amazonq/skills/openspec-*/SKILL.md | .amazonq/prompts/opsx-<id>.md |
Antigravity (antigravity) | .agent/skills/openspec-*/SKILL.md | .agent/workflows/opsx-<id>.md |
Auggie (auggie) | .augment/skills/openspec-*/SKILL.md | .augment/commands/opsx-<id>.md |
IBM Bob Shell (bob) | .bob/skills/openspec-*/SKILL.md | .bob/commands/opsx-<id>.md |
Claude Code (claude) | .claude/skills/openspec-*/SKILL.md | .claude/commands/opsx/<id>.md |
Cline (cline) | .cline/skills/openspec-*/SKILL.md | .clinerules/workflows/opsx-<id>.md |
Command Code (command-code) | .commandcode/skills/openspec-*/SKILL.md | .commandcode/commands/opsx-<id>.md |
CodeArts (codeartsagent) | .codeartsdoer/skills/openspec-*/SKILL.md | Не генерируется (нет адаптера команд; используйте вызовы на основе навыков /openspec-*) |
CodeBuddy (codebuddy) | .codebuddy/skills/openspec-*/SKILL.md | .codebuddy/commands/opsx/<id>.md |
Codex (codex) | .agents/skills/openspec-*/SKILL.md | Не генерируется (только навыки; используйте $openspec-*) |
Devin Desktop, ранее Windsurf (devin) | .devin/skills/openspec-*/SKILL.md | .devin/workflows/opsx-<id>.md**** |
ForgeCode (forgecode) | .forge/skills/openspec-*/SKILL.md | Не генерируется (нет адаптера команд; используйте вызовы на основе навыков /openspec-*) |
Continue (continue) | .continue/skills/openspec-*/SKILL.md | .continue/prompts/opsx-<id>.prompt |
CoStrict (costrict) | .cospec/skills/openspec-*/SKILL.md | .cospec/openspec/commands/opsx-<id>.md |
Crush (crush) | .crush/skills/openspec-*/SKILL.md | .crush/commands/opsx/<id>.md |
Cursor (cursor) | .cursor/skills/openspec-*/SKILL.md | .cursor/commands/opsx-<id>.md |
Factory Droid (factory) | .factory/skills/openspec-*/SKILL.md | .factory/commands/opsx-<id>.md |
Gemini CLI (gemini) | .gemini/skills/openspec-*/SKILL.md | .gemini/commands/opsx/<id>.toml |
GitHub Copilot (github-copilot) | .github/skills/openspec-*/SKILL.md | .github/prompts/opsx-<id>.prompt.md** |
Hermes Agent (hermes) | .hermes/skills/openspec-*/SKILL.md*** | Не генерируется (нет адаптера команд; используйте вызовы на основе навыков /openspec-*) |
iFlow (iflow) | .iflow/skills/openspec-*/SKILL.md | .iflow/commands/opsx-<id>.md |
Junie (junie) | .junie/skills/openspec-*/SKILL.md | .junie/commands/opsx-<id>.md |
Kilo Code (kilocode) | .kilocode/skills/openspec-*/SKILL.md | .kilocode/workflows/opsx-<id>.md |
Kimi Code (kimi) | .kimi-code/skills/openspec-*/SKILL.md | Не генерируется (нет адаптера команд; используйте вызовы на основе навыков /skill:openspec-*) |
Kiro (kiro) | .kiro/skills/openspec-*/SKILL.md | .kiro/prompts/opsx-<id>.prompt.md |
Lingma (lingma) | .lingma/skills/openspec-*/SKILL.md | .lingma/commands/opsx/<id>.md |
MiniMax Code (minimax-code) | ~/.minimax/skills/openspec-*/SKILL.md | Не генерируется (нет адаптера команд; используйте навыки MiniMax Code) |
Mistral Vibe (vibe) | .vibe/skills/openspec-*/SKILL.md | Не генерируется (нет адаптера команд; используйте вызовы на основе навыков /openspec-*) |
Oh My Pi (oh-my-pi) | .omp/skills/openspec-*/SKILL.md | .omp/commands/opsx-<id>.md |
OpenCode (opencode) | .opencode/skills/openspec-*/SKILL.md | .opencode/commands/opsx-<id>.md |
Pi (pi) | .pi/skills/openspec-*/SKILL.md | .pi/prompts/opsx-<id>.md |
SourceCraft Code Assistant for VS Code (codeassistant) | .codeassistant/skills/openspec-*/SKILL.md | .codeassistant/commands/opsx-<id>.md |
Qoder (qoder) | .qoder/skills/openspec-*/SKILL.md | .qoder/commands/opsx/<id>.md |
Qwen Code (qwen) | .qwen/skills/openspec-*/SKILL.md | .qwen/commands/opsx-<id>.md |
Rovo Dev CLI (rovodev) | .rovodev/skills/openspec-*/SKILL.md | Не генерируется. У Rovo нет поверхности слэш-команд — он автоматически сопоставляет навыки или по подсказке (например, "use the openspec-propose skill"); /skills только управляет ими. Сгенерированное содержимое ссылается на навыки по имени, никогда как команды /openspec-*. |
Zoo Code (roocode) | .roo/skills/openspec-*/SKILL.md | .roo/commands/opsx-<id>.md |
Trae (trae) | .trae/skills/openspec-*/SKILL.md | .trae/commands/opsx-<id>.md |
Zed Agent (zed) | .agents/skills/openspec-*/SKILL.md | Не генерируется (только навыки; используйте /openspec-* или @openspec-*) |
ZCode (zcode) | .zcode/skills/openspec-*/SKILL.md | .zcode/commands/opsx/<id>.md |
Общие навыки .agents (agents) | .agents/skills/openspec-*/SKILL.md | Не генерируется (нет адаптера команд; используйте вызовы на основе навыков /openspec-*) |
** Файлы подсказок GitHub Copilot распознаются как пользовательские слэш-команды в расширениях IDE (VS Code, JetBrains, Visual Studio). Copilot CLI пока напрямую не обрабатывает .github/prompts/*.prompt.md. Выбор github-copilot также может настроить облачного кодингового агента GitHub — см. Облачный кодинговый агент GitHub Copilot ниже.
*** Hermes по умолчанию загружает навыки из ~/.hermes/skills/. Чтобы использовать локальные для проекта навыки OpenSpec, добавьте каталог проекта .hermes/skills/ в skills.external_dirs в ~/.hermes/config.yaml; тогда Hermes предоставляет навыки с пользовательскими слэш-вызовами, такими как /openspec-propose.
**** Windsurf был переименован в Devin Desktop 2 июня 2026 года, а его каталог конфигурации перемещён: .devin/ — предпочтительное место для чтения и записи, .windsurf/ — устаревшее место только для чтения. OpenSpec следует переименованию — идентификатор инструмента devin, и --tools windsurf всё ещё разрешается в него, чтобы существующие скрипты настройки продолжали работать. Если проект всё ещё содержит файлы OpenSpec в .windsurf/, при следующем openspec update предлагается переместить их; отказ оставляет их на месте, а файлы, написанные вами самостоятельно, никогда не затрагиваются. Рабочие процессы вызываются по имени файла, поэтому .devin/workflows/opsx-apply.md это /opsx-apply. Локальный агент Devin не поддерживает рабочие процессы — только навыки, и он вообще не читает .windsurf/ — поэтому whenever OpenSpec пишет навыки Devin, он сохраняет их тела и подсказку начала работы на вызовах навыков /openspec-*, которые работают на обоих агентах. При доставке только команд навыки не пишутся, и оба режима падают назад к /opsx-*.
Поддержка SourceCraft Code Assistant ориентирована на его расширение VS Code. Его пользовательские команды и навыки доступны только в VS Code. Эта интеграция не настраивает SourceCraft web или JetBrains.
При доставке только навыков попросите Code Assistant использовать навык openspec-propose с вашей идеей. Навыки активируются через сопоставление запросов; OpenSpec не генерирует команды /openspec-* для этого инструмента.
MiniMax Code — это глобальная интеграция только с навыками. OpenSpec пишет только его каталоги openspec-* под ~/.minimax/skills/; он не создаёт локальные для репозитория каталоги .minimax или .mavis. Доставка только команд оставляет существующие глобальные навыки MiniMax Code без изменений, поэтому настройка доставки одного проекта не может удалить навыки, используемые другим проектом.
Облачный кодинговый агент GitHub Copilot
Агент кодинга Copilot от GitHub работает на GitHub в среде GitHub Actions — отдельно от Copilot в вашем редакторе. OpenSpec может настроить его для использования CLI OpenSpec, генерируя два файла:
.github/workflows/copilot-setup-steps.yml— устанавливает@fission-ai/openspecв среде агента.github/agents/openspec.agent.md— указывает агенту, как управлять OpenSpec
Поскольку это записывает рабочий процесс GitHub Actions в ваш репозиторий, это действие требует явного согласия (opt-in):
| Как | Поведение |
|---|---|
openspec init (интерактивно) | Спрашивает, нужно ли настраивать облачные файлы. По умолчанию Нет. |
openspec init --copilot-cloud | Настраивает их без запроса (для скриптов/CI). |
openspec init --no-copilot-cloud | Пропускает их без запроса и удаляет любые ранее сгенерированные. |
openspec update | Никогда не запрашивает. Обновляет файлы только если вы дали согласие (или в проекте они уже есть). Если вы отказались, он удаляет облачные файлы, управляемые OpenSpec. |
Ваш выбор сохраняется в openspec/config.yaml как githubCopilot.cloudAgent: true|false, поэтому неинтерактивные обновления учитывают его. OpenSpec всегда пишет или удаляет только те файлы, содержимое которых он сгенерировал — если вы настроили copilot-setup-steps.yml или openspec.agent.md, или у вас уже есть свои собственные, они остаются без изменений (и init/update сообщают вам об этом).
Когда выбирать общий целевой объект .agents
agents — это вариант, независимый от поставщика: он записывает навыки в .agents/skills/, общий корень, который читают многие инструменты агентов, вместо каталога, специфичного для инструмента.
| Ситуация | Выберите |
|---|---|
| Ваш инструмент имеет свою собственную строку выше | Его собственный ID — вы получаете интеграцию этого инструмента, включая слэш-команды там, где они поддерживаются |
Несколько агентов в одном репозитории, все читающие .agents/skills | agents — одно дерево навыков вместо одного для каждого инструмента |
Ваш инструмент ещё не указан, но читает .agents/skills | agents |
Выбор его вместе с идентификатором, специфичным для инструмента, допустим; обычно каждый пишет в свой собственный корень. Исключениями являются Codex и Zed Agent, потому что они используют тот же канонический корень .agents. Если Codex выбран вместе с Zed или agents, OpenSpec сохраняет одно дерево, возглавляемое Codex. Его передачи называют как $openspec-* для Codex, так и /openspec-* для других агентов, поэтому --tools all и существующие многоагентные настройки продолжают работать без перезаписи одних и тех же файлов двумя писателями. OpenSpec также предлагает его автоматически, когда в проекте появляется каталог .agents/skills/ — голого .agents/ недостаточно, так как инструменты используют этот корень также для правил и определений подагентов. Обратите внимание, что .agents — это не .agent: единственное число принадлежит Antigravity.
О чём стоит знать:
- Только навыки. Адаптера команд не существует, поэтому файлы команд
opsx-*не пишутся; при режиме доставки, включающем команды,openspec initперечисляетagentsсреди инструментов, о которых сообщает подCommands skipped for: … (no adapter). Вызывайте рабочие процессы по имени навыка — большинство ассистентов, читающих.agents/skills, записывают это как/openspec-propose, форма, которую печатает подсказка настройки OpenSpec. Целевой объект независим от поставщика, поэтому проверьте документацию вашего ассистента, если он использует другую форму. - Не создаётся и не редактируется
AGENTS.md. Целевым объектом является каталог.agents/. Если ваш корневойAGENTS.mdвсё ещё содержит маркерные блоки OpenSpec от более старой версии,openspec updateудалит их — см. Руководство по миграции.
Поддержка Zed здесь предназначена для встроенного Zed Agent. Внешние агенты Zed и Терминальные потоки используют свои собственные интеграции. Навыки агентов требуют Zed v1.4.2 или новее. Локальные для проекта навыки недоступны в недоверенном дереве рабочих копий, пока вы не предоставите доверие.
Поскольку .agents/skills/ разделяется между Codex, Zed Agent и целевым объектом, независимым от поставщика, стоит знать, что претендует OpenSpec там: он пишет, обновляет и удаляет только каталоги навыков openspec-* для ваших выбранных рабочих процессов, а также маркер .openspec-target, который записывает, был ли рендеринг этого общего дерева выполнен Codex, Zed Agent или целевым объектом, независимым от поставщика. Всё остальное в этом каталоге остаётся без изменений. Относитесь к именам openspec-* и маркеру как к собственности OpenSpec — правки внутри них заменяются при следующем openspec update, так же как и для любого другого инструмента.
Для проектов до появления маркера OpenSpec выводит принадлежность из управляемых ссылок на навыки: $openspec-* означает Codex, а /openspec-* означает целевой объект, независимый от поставщика. Каноническое дерево общего вида рядом с устаревшим .codex/skills рассматривается как старая установка с двумя целями и консолидируется в совместимое общее дерево.
openspec update также учитывает эту принадлежность. Если проект владеет .agents как целевым объектом, независимым от поставщика, и обнаруживается оставшаяся установка Codex только из случайных файлов подсказок, обновление оставляет установленное дерево agents на месте, вместо того чтобы перезаписывать его синтаксисом Codex, и сохраняет эти устаревшие файлы подсказок вместо их удаления. Чтобы передать общее дерево Codex, явно запустите openspec init --tools codex.
Неинтерактивная настройка
Для CI/CD или скриптовой настройки используйте --tools (и при необходимости --profile):
# Configure specific tools
openspec init --tools claude,cursor
# Configure all supported tools
openspec init --tools all
# Skip tool configuration
openspec init --tools none
# Override profile for this init run
openspec init --profile coreДоступные идентификаторы инструментов (--tools) — windsurf также принимается как псевдоним для devin: amazon-q, antigravity, auggie, bob, claude, cline, command-code, codeartsagent, codex, devin, forgecode, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, hermes, iflow, junie, kilocode, kimi, kiro, lingma, minimax-code, vibe, oh-my-pi, opencode, pi, qoder, qwen, roocode, codeassistant, trae, zed, zcode, agents
Установка в зависимости от рабочих процессов
OpenSpec устанавливает артефакты рабочих процессов в зависимости от выбранных рабочих процессов:
- Профиль Core (по умолчанию):
propose,explore,apply,update,sync,archive - Пользовательский выбор: любое подмножество всех идентификаторов рабочих процессов:
propose,explore,new,continue,apply,update,ff,sync,archive,bulk-archive,verify,onboard
Другими словами, количество навыков/команд зависит от профиля и способа доставки, а не фиксировано.
Генерируемые имена навыков
При выборе через конфигурацию профиля/рабочего процесса OpenSpec генерирует следующие навыки:
openspec-proposeopenspec-exploreopenspec-new-changeopenspec-continue-changeopenspec-apply-changeopenspec-update-changeopenspec-ff-changeopenspec-sync-specsopenspec-archive-changeopenspec-bulk-archive-changeopenspec-verify-changeopenspec-onboard
См. Commands для описания поведения команд и CLI для параметров init/update.
Связанные материалы
- CLI Reference — Терминальные команды
- Commands — Слэш-команды и навыки
- Getting Started — Начальная настройка