OpenSpec for Copilot

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.

Features
📝 Spec Management
- 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.md and use the "Start Task" CodeLens to send task context to the configured chat agent for implementation.
🧩 Prompt Management
- 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 Instructions and Project Agents groups, surfacing .github/instructions and .github/agents files (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.
Rename always appears above Delete for quick edits.
Installation
Prerequisites
- 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.addToThread command must be installed.
- OpenSpec must be globally installed and initialized.
OpenSpec Global Installation and Initialization:
Step 1: Install the CLI globally
npm install -g @fission-ai/openspec@latest
Verify installation:
openspec --version
Step 2: Initialize OpenSpec in your project
Navigate to your project directory:
cd my-project
Run the initialization:
openspec init
Marketplace
Search for "OpenSpec for Copilot" in the VS Code Marketplace and install the extension.
From Local VSIX
- Build the package with
npm run package (produces openspec-for-copilot-<version>.vsix).
- Install via
code --install-extension openspec-for-copilot-<version>.vsix.
Usage
1. Create a Spec
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.

2. Detailed Design Workflow (Optional)
- 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.
3. Implement Tasks
Open a generated tasks.md file.
Click Start All Tasks above a checklist item.
Chat will open with the task context. Interact with it to implement the code.

4. Create GitHub Issue
- 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.
5. Archive Change
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.

Configuration
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.
Workspace Layout
.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
Development
- Install dependencies for both the extension and webview UI:
- Build prompts and bundle the extension:
npm run build (runs prompt compilation, extension bundle, and webview build)
- Launch the development host:
- Press
F5 inside VS Code or run the Extension launch configuration.
- 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:
Testing and Quality
- Unit tests:
npm test, npm run test:watch, or npm run test:coverage (Vitest).
- Linting, formatting, and static checks:
npm run lint, npm run format, npm run check (Ultracite toolchain).
Packaging
- Produce a VSIX with
npm run package (requires vsce).
- The output bundle lives in
dist/extension.js; webview assets emit to dist/webview/app/.
License
MIT License. See LICENSE.
Credits
Based on OpenSpec by Fission AI.
Originally forked from kiro-for-codex-ide.