OpenSpec for Copilot is a VS Code extension that brings Spec-Driven Development (SDD) to your workflow, leveraging OpenSpec prompts and chat agents like GitHub Copilot Chat.
It allows you to visually manage Specs, Steering documents (AGENTS.md), and custom prompts, seamlessly integrating with GitHub Copilot Chat by default, with optional Codex Chat support.
- Create Specs: Run
OpenSpec for Copilot: Create New Spec(openspec-for-copilot.spec.create) to open the creation dialog. Define your summary, product context, and constraints. - Generate with Chat: The extension compiles your input into an optimized OpenSpec prompt and sends it to the configured chat agent (GitHub Copilot Chat by default) to generate the full specification (Requirements, Design, Tasks).
- Manage Specs: Browse generated specs in the Specs view.
- Detailed Design: Generate a detailed design document from a change, and update specs based on it.
- Create GitHub Issue: Generate a GitHub issue from a spec change, including references to proposal, design, and tasks.
- Execute Tasks: Open
tasks.mdand use the "Start Task" CodeLens to send task context to the configured chat agent for implementation.
- Custom Prompts: Manage Markdown prompts under
.github/prompts(configurable) alongside instructions and agents to keep all project guidance in one place. - Project Instructions & Agents: The Prompts explorer now shows
Project InstructionsandProject Agentsgroups, surfacing.github/instructionsand.github/agentsfiles (in that order) so you can reference reusable instructions and agent definitions without leaving VS Code. - Run Prompts: Execute prompts directly from the tree view, passing the context to the configured chat agent.
- Rename or Delete: Use the item context menu to rename or delete prompts, instructions, and agents without leaving the explorer.
Renamealways appears aboveDeletefor quick edits.
- Visual Studio Code 1.84.0 or newer.
- GitHub Copilot Chat extension must be installed (default).
- For Codex mode, a VS Code extension that provides the
chatgpt.addToThreadcommand must be installed. - OpenSpec must be globally installed and initialized.
npm install -g @fission-ai/openspec@latestVerify installation:
openspec --versionNavigate to your project directory:
cd my-projectRun the initialization:
openspec initOpenSpec for Copilot v1.0.0+ requires OpenSpec CLI v1. If you're upgrading from an earlier version:
- Node.js 18 or higher
- npm or yarn
-
Install OpenSpec CLI v1:
npm install -g openspec@latest
-
Initialize OpenSpec v1 in your workspace:
cd /path/to/your/workspace openspec init -
Verify prompt files were created: Check that
.github/prompts/contains:opsx-new.prompt.mdopsx-apply.prompt.mdopsx-archive.prompt.mdopsx-continue.prompt.mdopsx-ff.prompt.mdopsx-explore.prompt.mdopsx-verify.prompt.mdopsx-sync.prompt.mdopsx-bulk-archive.prompt.mdopsx-onboard.prompt.md
The extension will temporarily use legacy v0.x prompt files if v1 files are not found, but will display deprecation warnings. Legacy support will be removed in a future release.
"OpenSpec v1 prompt files not found" error:
- Ensure you've run
openspec initin your workspace root - Verify
.github/prompts/directory exists - Check that OpenSpec CLI is v1.0.0 or higher:
openspec --version
"Using legacy OpenSpec v0.x prompt file" warning:
- Run
openspec initto generate v1 files - The extension will continue working with legacy files but will show warnings
Search for "OpenSpec for Copilot" in the VS Code Marketplace and install the extension.
- Build the package with
npm run package(producesopenspec-for-copilot-<version>.vsix). - Install via
code --install-extension openspec-for-copilot-<version>.vsix.
-
Open the Specs view in the Activity Bar.
-
Click Create New Spec.
-
Fill in the details (Product Context is required).
-
Click Create Spec. This will open chat with a generated prompt.
-
Follow the chat instructions to generate the spec files.
- Right-click on a Change ID in the Specs view.
- Select Create Detailed Design. Chat will generate a detailed design document.
- Once the design is finalized, right-click the change again and select Update Specs from Detailed Design to synchronize other documents.
-
Open a generated
tasks.mdfile. -
Click Start All Tasks above a checklist item.
-
Chat will open with the task context. Interact with it to implement the code.
- Right-click on a Change ID in the Specs view.
- Select Create GitHub Issue from the context menu.
- Chat will open with a prompt to create a GitHub issue based on the spec documents.
- Review the generated issue title and body, then create the issue.
-
Right-click on a Change ID in the Specs view.
-
Select Archive Change from the context menu.
-
The change will be moved to the archive.
All settings live under the openspec-for-copilot namespace.
| Setting | Type | Default | Purpose |
|---|---|---|---|
aiAgent |
string | github-copilot |
Select which chat agent to use for sending prompts (github-copilot or codex). |
chatLanguage |
string | English |
The language GitHub Copilot should use for responses. |
copilot.specsPath |
string | openspec |
Workspace-relative path for generated specs. |
copilot.promptsPath |
string | .github/prompts |
Workspace-relative path for Markdown prompts. |
views.specs.visible |
boolean | true |
Show or hide the Specs explorer. |
views.prompts.visible |
boolean | true |
Toggle the Prompts explorer. |
views.steering.visible |
boolean | true |
Toggle the Steering explorer. |
views.settings.visible |
boolean | true |
Toggle the Settings overview. |
customInstructions.global |
string | "" |
Global custom instructions appended to all prompts. |
customInstructions.createSpec |
string | "" |
Custom instructions for "Create Spec". |
customInstructions.startAllTask |
string | "" |
Custom instructions for "Start All Tasks". |
customInstructions.archiveChange |
string | "" |
Custom instructions for "Archive Change". |
customInstructions.runPrompt |
string | "" |
Custom instructions for "Run Prompt". |
Note: In Codex mode, prompts are written to temporary Markdown files under ~/.codex/.tmp/ and sent via chatgpt.addToThread.
Paths accept custom locations inside the workspace; the extension mirrors watchers to match custom directories.
.github/
├── prompts/ # Markdown prompts
├── agents/ # Project agent definitions surfaced in the Prompts view
openspec/
├── AGENTS.md # Project-specific steering rules
├── project.md # Project specification
├── <spec>/
│ ├── requirements.md
│ ├── design.md
│ └── tasks.md
LICENSE
src/
├── extension.ts # Activation, command registration, tree providers
├── features/ # Spec and steering managers
├── providers/ # TreeDataProviders, CodeLens, webviews
├── services/ # Prompt loader (Handlebars templates)
├── utils/ # Config manager, Copilot chat helpers
└── prompts/ # Prompt source markdown and generated TypeScript
webview-ui/ # React + Vite webview bundle
scripts/
└── build-prompts.js # Markdown → TypeScript prompt compiler
- Install dependencies for both the extension and webview UI:
npm run install:all
- Build prompts and bundle the extension:
npm run build(runs prompt compilation, extension bundle, and webview build)
- Launch the development host:
- Press
F5inside VS Code or run theExtensionlaunch configuration.
- Press
- Live development:
npm run watch(TypeScript watch + webview dev server)npm --prefix webview-ui run dev(webview in isolation)
- Generate prompt modules when editing markdown under
src/prompts:npm run build-prompts
- Unit tests:
npm test,npm run test:watch, ornpm run test:coverage(Vitest). - Linting, formatting, and static checks:
npm run lint,npm run format,npm run check(Ultracite toolchain).
- Produce a VSIX with
npm run package(requiresvsce). - The output bundle lives in
dist/extension.js; webview assets emit todist/webview/app/.
MIT License. See LICENSE.
Based on OpenSpec by Fission AI. Originally forked from kiro-for-codex-ide.



