Skip to content

지원되는 도구 ​

OpenSpec은 많은 AI 코딩 어시스턴트와 함께 작동합니다. openspec init을 실행하면 OpenSpec은 활성 프로필/워크플로우 선택 및 전달 모드를 사용하여 선택한 도구를 구성합니다.

작동 방식 ​

각 선택된 도구에 대해 OpenSpec은 다음을 설치할 수 있습니다:

  1. 스킬 (전달에 스킬이 포함된 경우): .../skills/openspec-*/SKILL.md
  2. 명령 (전달에 명령이 포함된 경우): 도구별 opsx-* 명령 파일

Codex는 스킬 전용입니다: OpenSpec은 전달 모드가 commands로 설정된 경우에도 Codex에 대해 .agents/skills/openspec-*/SKILL.md를 설치하며, Codex 사용자 정의 프롬프트 파일을 생성하지 않습니다. 레거시 .codex/skills 경로 아래의 기존 OpenSpec 관리 스킬은 대체 파일이 작성된 후에 조정됩니다. 사용자 정의 및 분기된 파일은 보존됩니다.

기본적으로 OpenSpec은 core 프로필을 사용하며, 여기에는 다음이 포함됩니다:

  • propose
  • explore
  • apply
  • update
  • sync
  • archive

openspec config profile을 통해 확장된 워크플로우(new, continue, ff, verify, bulk-archive, onboard)를 활성화한 다음 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의 두 에이전트 중 하나만 읽음Devin Desktop에서는 /opsx-<id>, Devin Local에서는 /openspec-<skill>Devin Desktop****
.amazonq/prompts/opsx-<id>.md — 명령이 아닌 프롬프트@opsx-<id>Amazon Q Developer
없음 — 스킬 전용/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는 Cursor에서는 /opsx-propose, Amazon Q에서는 @opsx-propose, Codex에서는 $openspec-propose입니다.

독립적으로 변하는 두 가지가 있어 행이 단순화되지 않습니다:

  • 이름. 1~2행은 파일이 명령을 이름 붙이는 방식만 다르고, 생성된 명령 파일을 가진 모든 도구에서 opsx-<id> / opsx:<id> 줄기는 동일합니다.
  • 래퍼. Amazon Q는 파일을 @로 호출하는 프롬프트 라이브러리로 로드합니다. 스킬 전용 도구는 명령 파일을 전혀 생성하지 않으므로, 마지막 세 행은 스킬 이름을 사용합니다 — 생성된 스킬 이름에 나열되어 있으며, 명령 ID와 1:1로 대응되지 않습니다 (/opsx:apply는 openspec-apply-change 스킬입니다).

위 명령 경로 패턴은 확장자를 중립적으로(.*) 의도적으로 표기했습니다: 확장자는 도구의 것입니다(Gemini CLI는 .toml, Continue는 .prompt, Kiro와 GitHub Copilot은 .prompt.md), 일부 도구는 선택기에서 확장자를 포함한 이름을 표시합니다. 확장자가 아닌 디렉터리 형식에 맞춰 사용하세요.

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, formerly 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/ 디렉터리를 ~/.hermes/config.yaml의 skills.external_dirs에 추가하세요. 그러면 Hermes는 /openspec-propose와 같은 사용자 인터페이스 슬래시 호출로 스킬을 노출합니다.

**** Windsurf는 2026년 6월 2일에 Devin Desktop으로 리브랜딩되었으며, 설정 디렉터리가 이동했습니다: .devin/이 권장 읽기 + 쓰기 위치이고, .windsurf/는 레거시 읽기 전용 폴백입니다. OpenSpec는 이름 변경을 따릅니다 — 도구 ID는 devin이며, --tools windsurf도 여전히 해당 도구로 해석되므로 기존 설정 스크립트가 계속 작동합니다. .windsurf/에 OpenSpec 파일을 가진 프로젝트는 다음 openspec update에서 이동을 제안받습니다. 거절하면 파일은 제자리에 남고, 직접 작성한 파일은 절대 수정되지 않습니다. 워크플로우는 파일명으로 호출되므로 .devin/workflows/opsx-apply.md는 /opsx-apply입니다. Devin Local 에이전트는 워크플로우를 지원하지 않습니다 — 스킬만 지원하며 .windsurf/를 전혀 읽지 않으므로, OpenSpec는 Devin 스킬을 작성할 때 본문과 시작하기 힌트를 /openspec-* 스킬 호출로 유지합니다. 이 형식은 두 에이전트 모두에서 작동합니다. 명령 전용 전달 모드에서는 스킬이 작성되지 않고 둘 다 /opsx-*로 폴백합니다.

SourceCraft Code Assistant 지원은 VS Code 확장 프로그램을 대상으로 합니다. 사용자 정의 명령과 스킬은 VS Code에서만 사용할 수 있습니다. 이 통합은 SourceCraft 웹 또는 JetBrains를 설정하지 않습니다.

스킬 전용 전달 모드에서는 Code Assistant에게 아이디어와 함께 openspec-propose 스킬을 사용하도록 요청하세요. 스킬은 요청 매칭을 통해 활성화되며, OpenSpec는 이 도구에 대해 /openspec-* 명령을 생성하지 않습니다.

MiniMax Code는 전역 스킬 전용 통합입니다. OpenSpec는 ~/.minimax/skills/ 아래에 openspec-* 디렉터리만 작성하며, 저장소 로컬 .minimax 또는 .mavis 디렉터리를 생성하지 않습니다. 명령 전용 전달은 기존 전역 MiniMax Code 스킬에 영향을 주지 않으므로, 한 프로젝트의 전달 설정이 다른 프로젝트에서 사용하는 스킬을 삭제하지 않습니다.

GitHub Copilot 클라우드 코딩 에이전트 ​

GitHub의 Copilot 코딩 에이전트는 GitHub Actions 환경에서 GitHub 상에서 실행됩니다 — 편집기의 Copilot과는 별개입니다. OpenSpec는 두 파일을 생성하여 OpenSpec CLI를 사용하도록 설정할 수 있습니다:

  • .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

도구별 ID와 함께 선택해도 괜찮습니다. 각 도구는 일반적으로 자체 루트에 작성합니다. Codex와 Zed Agent는 동일한 정식 .agents 루트를 사용하므로 예외입니다. Codex가 Zed 또는 agents와 함께 선택되면, OpenSpec는 하나의 Codex 주도 트리를 유지합니다. 핸드오프는 Codex용 $openspec-*와 다른 에이전트용 /openspec-*를 모두 명시하므로, --tools all과 기존 멀티 에이전트 설정이 동일한 파일을 두 작성자가 덮어쓰지 않고 계속 작동합니다. OpenSpec는 프로젝트에 .agents/skills/ 디렉터리가 있는 경우 자동으로 제안하기도 합니다 — 단순한 .agents/만으로는 부족하며, 도구들이 해당 루트를 규칙 및 서브에이전트 정의에도 사용하므로 그렇습니다. 참고로 .agents는 .agent가 아닙니다: 단수 디렉터리는 Antigravity에 속합니다.

알아둘 두 가지:

  • 스킬 전용. 명령 어댑터가 존재하지 않으므로 opsx-* 명령 파일이 작성되지 않습니다. 명령 포함 전달 모드에서 openspec init는 agents를 Commands skipped for: … (no adapter) 아래 보고하는 도구 중 하나로 나열합니다. 워크플로우는 스킬 이름으로 호출하세요 — .agents/skills를 읽는 대부분의 어시스턴트는 OpenSpec 설정 힌트가 출력하는 형식인 /openspec-propose로 표기합니다. 대상이 벤더 중립이므로 다른 형식을 사용하는 경우 어시스턴트 자체 문서를 확인하세요.
  • AGENTS.md는 생성되거나 수정되지 않습니다. 대상은 .agents/ 디렉터리입니다. 루트 AGENTS.md에 이전 버전의 OpenSpec 마커 블록이 남아 있다면, openspec update가 제거합니다 — 마이그레이션 가이드 참조.

이곳의 Zed 지원은 내장 Zed Agent를 위한 것입니다. Zed External Agents와 Terminal Threads는 자체 통합을 사용합니다. Agent Skills에는 Zed v1.4.2 이상이 필요합니다. 프로젝트 로컬 스킬은 신뢰를 부여하기 전까지 신뢰하지 않는 워크트리에서는 사용할 수 없습니다.

.agents/skills/는 Codex, Zed Agent, 벤더 중립 대상이 공유하므로, OpenSpec가 그곳에서 무엇을 주장하는지 아는 것이 중요합니다: 선택한 워크플로우에 대한 openspec-* 스킬 디렉터리만 작성, 새로고침, 삭제하며, Codex, Zed Agent, 벤더 중립 대상 중 어느 쪽이 해당 공유 트리를 렌더링했는지 기록하는 .openspec-target 마커도 포함합니다. 해당 디렉터리의 다른 모든 것은 그대로 둡니다. 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)를 사용하세요:

bash
# 특정 도구 구성
openspec init --tools claude,cursor

# 모든 지원 도구 구성
openspec init --tools all

# 도구 구성 건너뛰기
openspec init --tools none

# 이번 init 실행에서 프로필 재정의
openspec init --profile core

사용 가능한 도구 ID(--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
  • 사용자 지정 선택: 모든 워크플로 ID의 부분 집합: propose, explore, new, continue, apply, update, ff, sync, archive, bulk-archive, verify, onboard

즉, 스킬/명령어 수는 고정된 것이 아니라 프로필에 따라, 그리고 전달 방식에 따라 달라집니다.

생성된 스킬 이름 ​

프로필/워크플로 구성에서 선택되면 OpenSpec는 다음 스킬을 생성합니다:

  • openspec-propose
  • openspec-explore
  • openspec-new-change
  • openspec-continue-change
  • openspec-apply-change
  • openspec-update-change
  • openspec-ff-change
  • openspec-sync-specs
  • openspec-archive-change
  • openspec-bulk-archive-change
  • openspec-verify-change
  • openspec-onboard

명령어 동작은 Commands에서, init/update 옵션은 CLI에서 확인하세요.

관련 항목 ​