Skip to content
/

openspec-for-copilot

openspec-for-copilot · atman-33/openspec-for-copilot · ★ 18 · last commit 2026-05-22

Brings OpenSpec spec-driven development to GitHub Copilot Chat users via a VS Code extension with sidebar spec management, Handlebars-compiled prompts, and CodeLens task runner.

Best whenVisual tree-view + form-compiled prompts lower the adoption barrier for Copilot users who find CLI-first workflows unfamiliar.
vs seeds
spec-kit(Archetype 2: 9 commands + 9 skills + 18 hooks), this extension provides equivalent workflow steps as VS Code commands w…
Primitive shape 23 total
Commands 23
00

Summary

openspec-for-copilot — Summary

openspec-for-copilot is a VS Code extension (published to the VS Code Marketplace as atman-dev.openspec-for-copilot) that brings the OpenSpec spec-driven development workflow to GitHub Copilot Chat users, providing a visual sidebar with spec management, prompt management, steering document management, and GitHub issue generation — all orchestrated through Copilot Chat (or optionally Codex) via pre-compiled Handlebars-templated prompts.

Problem it solves: GitHub Copilot Chat users have no native way to trigger structured spec-driven workflows; they must manually know what to ask the AI for each OpenSpec step. This extension adds a dedicated sidebar that compiles OpenSpec-formatted prompts and sends them directly to the Copilot Chat panel, making the full OpenSpec lifecycle accessible from a tree view.

Distinctive trait: The only VS Code extension in this batch. Ships a custom Webview UI (React + Vite) for spec creation, uses Handlebars-templated prompts compiled from Markdown sources at build time, and supports both GitHub Copilot Chat and Codex as AI backends via a configurable aiAgent setting.

Target audience: VS Code users on GitHub Copilot who want OpenSpec-style spec-driven development without installing the Node.js CLI or using a different editor.

Production-readiness: v1.1.0, 18 stars, last commit May 2026 (most recently updated framework in this batch). Published to VS Code Marketplace. Requires OpenSpec CLI installed globally.

Relationship to seeds: Most similar to kiro (Archetype 5 — IDE-specific integration) but as a VS Code extension rather than a full IDE fork. Like spec-kit (Archetype 2 — mirror commands + skills), it provides one UI action per OpenSpec workflow step. Originally forked from kiro-for-codex-ide (credited in README), making it the only framework in this batch with a documented fork lineage from a non-OpenSpec source.

01

Overview

openspec-for-copilot — Overview

Origin

Created by GitHub user atman-33 (Atman). Published to the VS Code Marketplace. The README credits:

"Based on OpenSpec by Fission AI." "Originally forked from kiro-for-codex-ide."

This is the only framework in the batch with a documented fork lineage from a Kiro-related project.

Philosophy

The extension's value proposition is removing the "what to type" friction from OpenSpec workflows:

"It allows you to visually manage Specs, Steering documents (AGENTS.md), and custom prompts, seamlessly integrating with GitHub Copilot Chat by default."

The design philosophy is visual-first: the user manages specs through a tree view rather than CLI commands, and the extension handles prompt compilation and delivery to the AI assistant.

Dual backend support

The extension supports two AI backends:

Setting value Backend Prompt delivery
github-copilot (default) GitHub Copilot Chat Direct via VS Code chatgpt.sendChatMessage or similar
codex Codex Written to ~/.codex/.tmp/ as Markdown files, then sent via chatgpt.addToThread

Prompt compilation

Prompts are written as Markdown source files under src/prompts/ and compiled to TypeScript modules at build time by scripts/build-prompts.js (a Handlebars-based compiler). The compiled modules are bundled into dist/extension.js.

Generated prompt files (placed at openspec init time in .github/prompts/):

  • opsx-new.prompt.md
  • opsx-apply.prompt.md
  • opsx-archive.prompt.md
  • opsx-continue.prompt.md
  • opsx-ff.prompt.md
  • opsx-explore.prompt.md
  • opsx-verify.prompt.md
  • opsx-sync.prompt.md
  • opsx-bulk-archive.prompt.md
  • opsx-onboard.prompt.md

Migration note

v1.0.0 requires OpenSpec CLI v1. Legacy v0.x prompt files are supported with deprecation warnings.

02

Architecture

openspec-for-copilot — Architecture

Distribution

  • Type: VS Code extension
  • Publisher: atman-dev
  • Extension ID: atman-dev.openspec-for-copilot
  • Version: 1.1.0
  • Language: TypeScript + React (webview-ui)
  • Required VS Code: 1.84.0 or newer

Prerequisites

  • VS Code 1.84.0+
  • GitHub Copilot Chat extension (default backend)
  • npm install -g @fission-ai/openspec@latest (OpenSpec CLI)
  • openspec init in project directory

Install

From VS Code Marketplace: search "OpenSpec for Copilot"

From VSIX:

npm run package  # produces openspec-for-copilot-<version>.vsix
code --install-extension openspec-for-copilot-<version>.vsix

Repository structure

openspec-for-copilot/
├── 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
│   ├── types/
│   └── prompts/             ← Prompt source Markdown + generated TypeScript
│       ├── example.md
│       └── target/          ← Generated TypeScript prompt modules
├── webview-ui/              ← React + Vite webview bundle
├── scripts/
│   └── build-prompts.js     ← Markdown → TypeScript prompt compiler
├── openspec/                ← Sample openspec directory (for dev/testing)
├── AGENTS.md                ← AI instructions
└── package.json             ← 23 VS Code commands registered

Configuration

All settings under openspec-for-copilot namespace:

Setting Default Purpose
aiAgent github-copilot AI backend (github-copilot or codex)
chatLanguage English Language for AI responses
copilot.specsPath openspec Workspace path for specs
copilot.promptsPath .github/prompts Path for Markdown prompts
views.specs.visible true Show/hide Specs explorer
views.prompts.visible true Show/hide Prompts explorer
views.steering.visible true Show/hide Steering explorer
customInstructions.global "" Global custom instructions appended to all prompts
customInstructions.createSpec "" Custom instructions for Create Spec
customInstructions.startAllTask "" Custom instructions for Start All Tasks

Target AI tools

  • GitHub Copilot Chat (primary)
  • Codex (optional, configurable)
03

Components

openspec-for-copilot — Components

VS Code Commands (23)

Registered in package.json#contributes.commands:

Spec management (9)

Command ID Title
openspec-for-copilot.spec.create Create New Spec
openspec-for-copilot.spec.refresh Refresh Specs
openspec-for-copilot.spec.delete Delete Spec
openspec-for-copilot.spec.archiveChange Archive Change
openspec-for-copilot.spec.copyName Copy Name
openspec-for-copilot.spec.createGitHubIssue Create GitHub Issue
openspec-for-copilot.spec.createDetailedDesign Create Detailed Design
openspec-for-copilot.spec.updateSpecsFromDetailedDesign Update Specs from Detailed Design
openspec-for-copilot.spec.implTask Implement Task

Steering management (2)

Command ID Title
openspec-for-copilot.steering.createUserRule Create User Rule
openspec-for-copilot.steering.createProjectRule Create Project Rule

Prompt management (7)

Command ID Title
openspec-for-copilot.prompts.create Create Prompt
openspec-for-copilot.prompts.createAgentFile New Agent File
openspec-for-copilot.prompts.createInstructions New Instructions File
openspec-for-copilot.prompts.createCopilotPrompt New Prompt File
openspec-for-copilot.prompts.refresh Refresh Prompts
openspec-for-copilot.prompts.run Run Prompt
openspec-for-copilot.prompts.rename Rename
openspec-for-copilot.prompts.delete Delete

Settings/help (4)

Command ID Title
openspec-for-copilot.settings.open OpenSpec Settings
openspec-for-copilot.settings.openGlobalConfig Open MCP Config (mcp.json)
openspec-for-copilot.help.open OpenSpec Help
openspec-for-copilot.steering.refresh Refresh Steering

VS Code Views (4 tree views in Activity Bar)

View Content
Specs OpenSpec change tree (by change ID)
Prompts .github/prompts/ Markdown files + Project Instructions + Project Agents
Steering openspec/AGENTS.md and steering files
Settings Configuration overview

WebView UI

A React + Vite webview for "Create New Spec" dialog. Fields: Product Context (required), Summary, Constraints.

CodeLens

"Start All Tasks" CodeLens appears above checklist items in tasks.md files. Clicking sends task context to the AI backend.

Skill / prompt files (10, generated by OpenSpec CLI at init)

Under .github/prompts/:

  • opsx-new.prompt.md, opsx-apply.prompt.md, opsx-archive.prompt.md
  • opsx-continue.prompt.md, opsx-ff.prompt.md, opsx-explore.prompt.md
  • opsx-verify.prompt.md, opsx-sync.prompt.md
  • opsx-bulk-archive.prompt.md, opsx-onboard.prompt.md

Scripts (build-time)

Script Purpose
scripts/build-prompts.js Compiles Markdown prompt sources → TypeScript modules
npm run build Full build: prompts + extension bundle + webview
npm run watch TypeScript watch + webview dev server
npm run test Vitest unit tests
05

Prompts

openspec-for-copilot — Prompts (Verbatim)

The extension's prompt content is compiled from Markdown sources in src/prompts/ using Handlebars templates. The compiled output is bundled into the extension. The .github/prompts/ files generated by openspec init are the actual prompt files used at runtime.

The README documents the prompt file names and their workflow mapping:

1. Prompt file listing (from README migration guide)

.github/prompts/
├── opsx-new.prompt.md
├── opsx-apply.prompt.md
├── opsx-archive.prompt.md
├── opsx-continue.prompt.md
├── opsx-ff.prompt.md
├── opsx-explore.prompt.md
├── opsx-verify.prompt.md
├── opsx-sync.prompt.md
├── opsx-bulk-archive.prompt.md
└── opsx-onboard.prompt.md

These are Markdown files with .prompt.md extension, which GitHub Copilot Chat recognizes as reusable prompts.

2. Create Spec prompt flow (from README)

The extension's "Create New Spec" dialog collects three fields and compiles them into a prompt:

Product Context (required): [user input]
Summary: [user input]
Constraints: [user input]

Then sends a Copilot-formatted request to:

"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)."

Prompting technique: Form-to-prompt compilation — structured UI input is assembled into a prompt template before delivery to the AI. The AI never sees raw form fields; it receives a compiled prompt.

3. Task implementation (from README)

Open a generated tasks.md file.
Click "Start All Tasks" above a checklist item.
Chat will open with the task context.

Prompting technique: CodeLens-injected task context — the extension reads the tasks.md file and the surrounding spec files, assembles a context prompt, and sends it to the AI chat with the task description pre-loaded.

4. GitHub Issue generation (from README)

Right-click on a Change ID → "Create GitHub Issue"
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.

Prompting technique: Multi-document summary → structured output. The extension loads proposal.md, design.md, and tasks.md for the change and prompts the AI to generate a GitHub issue format.

5. Custom instructions (from README)

customInstructions.global: "Always include accessibility considerations"

Prompting technique: Suffix injection — custom instructions are appended to every prompt sent to the AI, acting as persistent system-level instructions without overriding per-operation prompts.


Key Prompting Techniques

  1. Form-to-prompt compilation: Handlebars templates turn structured UI input into coherent prompts
  2. Multi-document context assembly: Task implementation and issue generation load multiple spec files before prompting
  3. Suffix injection: customInstructions fields allow persistent behavioral modifications
  4. .prompt.md format: Files are named with .prompt.md extension so GitHub Copilot Chat recognizes them as prompt files natively
09

Uniqueness

openspec-for-copilot — Uniqueness and Positioning

differs_from_seeds

Most similar to kiro (Archetype 5 — IDE-specific integration): both are IDE extensions that provide a specialized UI for spec-driven development. The architectural delta: Kiro is a full VS Code fork with proprietary hook events and EARS spec notation; openspec-for-copilot is a standard VS Code extension that targets GitHub Copilot Chat (not a fork) and uses the canonical OpenSpec format. It is the only framework in the batch targeting Copilot Chat explicitly. Compared to spec-kit (Archetype 2 — 9 commands + 9 skills + 18 hooks), openspec-for-copilot provides equivalent workflow steps but as VS Code commands rather than slash-commands, and has no hooks at all. Originally forked from kiro-for-codex-ide — a lineage that connects it to the Kiro IDE adapter pattern.

Positioning

  • Niche: "OpenSpec for GitHub Copilot Chat users in VS Code"
  • Primary differentiator: Only VS Code extension in the batch; only one targeting Copilot as primary AI backend
  • Secondary differentiator: GitHub Issue generation from spec changes — no other framework in the batch has this
  • Fork lineage: Forked from kiro-for-codex-ide — demonstrates the Kiro adapter pattern being applied to OpenSpec

Observable failure modes

  1. CLI version mismatch: If OpenSpec CLI v0.x files exist and openspec init hasn't been re-run, the extension shows deprecation warnings and uses legacy prompt files
  2. Copilot dependency: The extension's core value depends entirely on GitHub Copilot Chat being available; without it, no AI operations work
  3. No approval gates: The workflow has no coded approval gates; users can archive changes without verifying tasks are complete
  4. Codex backend fragility: The Codex path writes to ~/.codex/.tmp/ which is undocumented Codex internal path — likely to break with Codex updates
  5. No hooks: No lifecycle hooks means there's no way to enforce the workflow order; users can invoke commands out of sequence

Explicit antipatterns

None documented in README.

04

Workflow

openspec-for-copilot — Workflow

Phases

# Phase VS Code action AI action Artifact
1 Create Spec Click "Create New Spec" in Specs view → fill webview form AI generates requirements + design + tasks from the prompt openspec/changes/{id}/requirements.md, design.md, tasks.md
2 Detailed Design (optional) Right-click change → "Create Detailed Design" AI generates detailed design document openspec/changes/{id}/design.md
3 Update Specs Right-click → "Update Specs from Detailed Design" AI synchronizes other documents with design Updated spec documents
4 Implement Tasks Open tasks.md, click "Start All Tasks" CodeLens AI implements code for the task Source code changes
5 Create GitHub Issue Right-click change → "Create GitHub Issue" AI generates GitHub issue title and body GitHub issue (external)
6 Archive Right-click → "Archive Change" AI-assisted archive openspec/archive/{id}/

Approval gates

None explicitly. Each step requires the user to review AI output before proceeding — but this is UI friction, not a coded gate.

Phase to artifact map

Phase Artifact
Create Spec openspec/changes/{id}/requirements.md
Create Spec openspec/changes/{id}/design.md
Create Spec openspec/changes/{id}/tasks.md
Implement Tasks Source code files
Archive openspec/archive/{id}/

Prompt flow

When the user clicks "Create New Spec":

  1. Webview form collects: Product Context (required), Summary, Constraints
  2. Extension compiles a Handlebars prompt using the collected fields
  3. Prompt is sent to GitHub Copilot Chat (or Codex)
  4. AI generates spec files in the conversation
  5. User saves the generated files

Custom instructions

The customInstructions.global setting appends user-defined instructions to every prompt. Per-operation overrides also available:

  • customInstructions.createSpec
  • customInstructions.startAllTask
  • customInstructions.archiveChange
  • customInstructions.runPrompt
06

Memory Context

openspec-for-copilot — Memory and Context

State storage

File-based (same OpenSpec directory layout):

File Purpose
openspec/changes/{id}/requirements.md Requirements spec
openspec/changes/{id}/design.md Design document
openspec/changes/{id}/tasks.md Task checklist
openspec/AGENTS.md Steering rules
openspec/project.md Project context
.github/prompts/*.prompt.md Reusable prompt files
.github/instructions/*.md Project instructions
.github/agents/*.md Agent definition files

Steering documents

The extension's "Steering" view surfaces openspec/AGENTS.md and related files. Users can create:

  • User rules (global, via openspec-for-copilot.steering.createUserRule)
  • Project rules (project-scoped, via openspec-for-copilot.steering.createProjectRule)

Context compaction

No explicit handling. The extension loads spec files synchronously when sending prompts.

Cross-session handoff

Yes — all state is in files. A new VS Code session picks up from existing spec files.

Memory type

File-based, project-scoped.

Prompt Management

The "Prompts" view shows:

  • .github/prompts/ Markdown files (custom prompts)
  • .github/instructions/ (Project Instructions group)
  • .github/agents/ (Project Agents group)

This creates a unified file-based knowledge base visible and editable from the sidebar.

07

Orchestration

openspec-for-copilot — Orchestration

Multi-agent

No. Single AI backend (Copilot or Codex).

Orchestration pattern

Sequential. Each VS Code command initiates a single prompt-send cycle.

Isolation mechanism

None.

Multi-model

No. Either GitHub Copilot Chat or Codex — one backend at a time, switchable via settings.

Execution mode

Interactive-loop (event-driven by VS Code command invocations).

Prompt chaining

Implicit. The "Detailed Design → Update Specs" workflow chains two AI operations: first generate design, then update other spec files based on the design.

Auto-validators

None.

08

Ui Cli Surface

openspec-for-copilot — UI, CLI, and Observability

Dedicated CLI binary

None shipped by this extension. Requires @fission-ai/openspec CLI pre-installed.

Local web dashboard

None standalone. The extension ships a VS Code Webview for the "Create New Spec" dialog (React + Vite), but this is an embedded VS Code panel, not a standalone web server.

IDE integration

Yes — VS Code only.

Attribute Value
IDE Visual Studio Code
Integration method VS Code Extension API
Activity Bar Yes — custom OpenSpec icon in Activity Bar
Views 4 tree views: Specs, Prompts, Steering, Settings
Webview React + Vite "Create Spec" form
CodeLens "Start All Tasks" on tasks.md checklist items
AI backend GitHub Copilot Chat (default) or Codex

VS Code contribution points

  • viewsContainers — Activity Bar icon
  • views — 4 tree views registered
  • commands — 23 commands registered
  • menus — Context menus for tree items
  • configuration — Settings schema

Observability

Minimal:

  • Tree views show change status visually
  • tasks.md checkbox state provides task progress
  • No structured logging or audit trail

Codex backend path

When aiAgent: "codex", prompts are written to ~/.codex/.tmp/ as Markdown files, then sent via the chatgpt.addToThread VS Code command. This is a creative workaround for Codex's lack of a native VS Code Copilot Chat API.

Related frameworks

same archetype · same primary tool · same memory type

Kiro ★ 3.8k

Prevents 'vibe coding' by enforcing a Requirements→Design→Tasks spec pipeline with EARS notation before any code is generated.

Zed ★ 84k

Open-source, GPU-accelerated IDE with a native AI agent featuring LSP-aware tools, update_plan for visible task tracking,…

Cline ★ 62k

SDK-first autonomous coding agent with human-in-the-loop approval across VS Code, JetBrains, CLI, and a parallel-agent Kanban…

OpenSpec-Zed ★ 14

Adds OpenSpec slash commands to the Zed editor's AI Assistant panel so Zed users can initiate spec-driven workflows without…

Shadow Code ★ 79

Developers write pseudocode in a parallel .shadow file; Shadow Code transforms it into target-language production code via VS…

Cursor Agentic Development Pipeline ★ 12

Automate building an Obsidian knowledge base of Laravel packages, skills, and MCP servers using GitHub Copilot cloud agents.