Spec-driven development (SDD) CLI for AI coding agents (Claude Code, Cursor) - initialize, validate, and sync .specs/ across TypeScript & Node.js projects
37
stars
150
commits
TypeScript
primary language
Sep 13, 2026
updated
SpecPilot is a spec-driven development (SDD) CLI for AI coding agents like Claude Code, Cursor, and ChatGPT. It initializes, validates, and syncs a .specs/ directory so AI-assisted coding stays grounded in living requirements, architecture, and task specs instead of drifting from the codebase.

Prefer to stay inside your editor? SpecPilot also runs as a remote MCP server, so Claude Code, Cursor or Copilot can run the whole onboarding itself - answering what it can infer from your repo and asking you only the rest.
claude mcp add --transport http specpilot https://init.specpilot.dev/mcp
Then ask your agent: "Onboard this project with SpecPilot".
For Cursor, VS Code and other clients, add it as an HTTP (streamable) server:
{
"mcpServers": {
"specpilot": {
"type": "http",
"url": "https://init.specpilot.dev/mcp"
}
}
}
No install, no API key. Full setup notes: https://specpilot.dev/mcp-setup
# Install globally
npm install -g specpilot
# Create a new project
specpilot init my-project --lang typescript --framework react
# Add specs to existing project
cd existing-project
specpilot add-specs
# Validate specifications
specpilot validate
After creating a project, follow these steps to populate your specifications using AI:
.specs/README.md for full guidance.specs/development/onboarding.mdThis AI-assisted approach ensures comprehensive, high-quality specifications tailored to your project needs.
| Command | Description |
|---|---|
init <name> | Initialize new SDD project |
init <name> --dry-run | Preview files that would be created without writing |
add-specs | Add specs to existing project |
validate | Validate specification files |
archive | Archive oversized prompts.md / tasks.md entries |
backfill | Backfill missing mandates & slash commands into existing project files |
list | Show available templates |
migrate | Convert legacy .project-spec folder (rarely needed) |
refine [desc] | Refine project specifications |
Tip β command aliases: All commands have a short alias you can use instead of the full name.
initβiΒ Β·ΒvalidateβvΒ Β·ΒmigrateβmΒ Β·ΒlistβlsΒ Β·ΒrefineβrefΒ Β·ΒarchiveβarΒ Β·Βadd-specsβaddΒ Β·ΒbackfillβbfExample:specpilot i my-appis identical tospecpilot init my-app.
| Command | Options |
|---|---|
init | --lang Β· --framework Β· --dir Β· --specs-name Β· --no-prompts Β· --dry-run |
validate | --fix Β· --verbose |
migrate | --from Β· --to Β· --backup |
list | --lang Β· --verbose |
refine | --update Β· --no-prompts |
archive | --dry-run Β· --force |
add-specs | --no-analysis Β· --deep-analysis Β· --no-prompts |
backfill | --dir Β· --specs-name Β· --dry-run Β· --no-prompts |
Run
specpilot <command> --helpfor full flag descriptions and default values.
# Initialize with specific language/framework
specpilot init api --lang python --framework fastapi
# Preview files that would be created without writing anything
specpilot init api --dry-run
# Refine specifications
specpilot refine "REST API for user management" --update
# Validate with auto-fix
specpilot validate --fix
Note: no framework prompt is shown for JavaScript β pass
--frameworkexplicitly if needed.
SpecPilot generates a .specs/ folder with organized subdirectories:
.specs/
βββ architecture/
β βββ api.yaml # CLI / REST API / GraphQL interface spec
β βββ architecture.md # System design decisions and patterns
βββ development/
β βββ context.md # Development memory, decisions, learnings
β βββ onboarding.md # One-time AI bootstrap prompt β delete after first use
β βββ prompts.md # AI interaction log β MANDATED, update every session
βββ planning/
β βββ roadmap.md # Release milestones and objectives
β βββ tasks.md # Sprint tracker (backlog / current / completed)
βββ project/
β βββ project.yaml # Project config, rules, and AI context (MANDATED)
β βββ requirements.md # Functional & non-functional requirements
βββ quality/
β βββ tests.md # Test strategy, coverage targets, acceptance criteria
βββ security/
βββ security-decisions.md # ADR-style security design decisions
βββ threat-model.md # Threat inventory with impact/likelihood/mitigation
Also generated at project root: an AI context file (
.github/copilot-instructions.md,CLAUDE.md,.cursor/rules/specpilot.mdc,.windsurfrules,.antigravity/rules.mdetc.) based on your selected IDE/Agent
SpecPilot requires no global configuration. Each project is self-contained with settings in project.yaml.
SpecPilot generates AI agent configuration files during project initialization. When you run specpilot init, you'll be prompted to select your AI IDE/Agent:
Desktop IDEs (Workspace Settings):
Cloud-Based AI Agents (Instruction Files):
CLAUDE.md)Generated Configuration Files:
Each IDE/Agent selection generates one AI context file at the project root:
| IDE/Agent | Generated file |
|---|---|
| GitHub Copilot | .github/copilot-instructions.md |
| Codex | .github/copilot-instructions.md |
| Cursor | .cursor/rules/specpilot.mdc |
| Windsurf | .windsurfrules |
| Antigravity | .antigravity/rules.md |
| Claude Code | CLAUDE.md |
All context files contain: project name/stack, critical mandates, Code Philosophy, Code Rules, and a Re-Anchor Prompt.
For desktop IDEs: .vscode/settings.json (or .cursor/, .windsurf/, etc.)
Each IDE/Agent selection also generates 8 specpilot-* slash/workflow commands (status, reanchor, report, sync, refine, validate, archive, backfill) that mirror key CLI operations as in-editor commands β e.g. .claude/commands/specpilot-status.md for Claude Code, .cursor/commands/ for Cursor, .github/prompts/ for GitHub Copilot. Running backfill on an existing project fills in any commands missing for your already-configured IDE(s). See the Full Guide for the complete list and per-IDE paths.
The generated settings/instructions automatically configure your AI agent to:
.specs/ folder in AI contextExample:
# During init, you'll be prompted to select your IDE/Agent
specpilot init my-project --lang typescript --framework react
# Respond with your preferred IDE/Agent:
# - vscode, cursor, windsurf, antigravity (desktop)
# - claude-code, codex (cloud agents)
sudo chown -R $USER ~/.npm-global
npm config set prefix '~/.npm-global'
specpilot list --verbose
specpilot validate --verbose --fix
Error: "Source structure 'complex' not found"
# For NEW projects, use:
specpilot init my-project
# For EXISTING projects without specs:
specpilot add-specs
# Only use migrate if you have an old .project-spec folder
specpilot migrate --from complex --to simple --backup
DEBUG=specpilot specpilot <command>
SpecPilot implements Specification-Driven Development (SDD) where specifications come first:
Specifications β Architecture β Code β Tests β Deployment
Benefits:
This project follows SDD principles. See .specs/ for contribution guidelines.
git clone https://github.com/girishr/SpecPilot.git
cd SpecPilot
npm install
npm run build
npm link # For local testing
.specs/project/requirements.md.specs/planning/tasks.mdspecpilot validate before committingMIT License - see LICENSE file for details.
Built with specification-driven development principles for serious production projects.
TypeScript
99.7%
Spec-driven development (SDD) CLI for AI coding agents (Claude Code, Cursor) - initialize, validate, and sync .specs/ across TypeScript & Node.js projects
37
stars
150
commits
TypeScript
primary language
Sep 13, 2026
updated
SpecPilot is a spec-driven development (SDD) CLI for AI coding agents like Claude Code, Cursor, and ChatGPT. It initializes, validates, and syncs a .specs/ directory so AI-assisted coding stays grounded in living requirements, architecture, and task specs instead of drifting from the codebase.

Prefer to stay inside your editor? SpecPilot also runs as a remote MCP server, so Claude Code, Cursor or Copilot can run the whole onboarding itself - answering what it can infer from your repo and asking you only the rest.
claude mcp add --transport http specpilot https://init.specpilot.dev/mcp
Then ask your agent: "Onboard this project with SpecPilot".
For Cursor, VS Code and other clients, add it as an HTTP (streamable) server:
{
"mcpServers": {
"specpilot": {
"type": "http",
"url": "https://init.specpilot.dev/mcp"
}
}
}
No install, no API key. Full setup notes: https://specpilot.dev/mcp-setup
# Install globally
npm install -g specpilot
# Create a new project
specpilot init my-project --lang typescript --framework react
# Add specs to existing project
cd existing-project
specpilot add-specs
# Validate specifications
specpilot validate
After creating a project, follow these steps to populate your specifications using AI:
.specs/README.md for full guidance.specs/development/onboarding.mdThis AI-assisted approach ensures comprehensive, high-quality specifications tailored to your project needs.
| Command | Description |
|---|---|
init <name> | Initialize new SDD project |
init <name> --dry-run | Preview files that would be created without writing |
add-specs | Add specs to existing project |
validate | Validate specification files |
archive | Archive oversized prompts.md / tasks.md entries |
backfill | Backfill missing mandates & slash commands into existing project files |
list | Show available templates |
migrate | Convert legacy .project-spec folder (rarely needed) |
refine [desc] | Refine project specifications |
Tip β command aliases: All commands have a short alias you can use instead of the full name.
initβiΒ Β·ΒvalidateβvΒ Β·ΒmigrateβmΒ Β·ΒlistβlsΒ Β·ΒrefineβrefΒ Β·ΒarchiveβarΒ Β·Βadd-specsβaddΒ Β·ΒbackfillβbfExample:specpilot i my-appis identical tospecpilot init my-app.
| Command | Options |
|---|---|
init | --lang Β· --framework Β· --dir Β· --specs-name Β· --no-prompts Β· --dry-run |
validate | --fix Β· --verbose |
migrate | --from Β· --to Β· --backup |
list | --lang Β· --verbose |
refine | --update Β· --no-prompts |
archive | --dry-run Β· --force |
add-specs | --no-analysis Β· --deep-analysis Β· --no-prompts |
backfill | --dir Β· --specs-name Β· --dry-run Β· --no-prompts |
Run
specpilot <command> --helpfor full flag descriptions and default values.
# Initialize with specific language/framework
specpilot init api --lang python --framework fastapi
# Preview files that would be created without writing anything
specpilot init api --dry-run
# Refine specifications
specpilot refine "REST API for user management" --update
# Validate with auto-fix
specpilot validate --fix
Note: no framework prompt is shown for JavaScript β pass
--frameworkexplicitly if needed.
SpecPilot generates a .specs/ folder with organized subdirectories:
.specs/
βββ architecture/
β βββ api.yaml # CLI / REST API / GraphQL interface spec
β βββ architecture.md # System design decisions and patterns
βββ development/
β βββ context.md # Development memory, decisions, learnings
β βββ onboarding.md # One-time AI bootstrap prompt β delete after first use
β βββ prompts.md # AI interaction log β MANDATED, update every session
βββ planning/
β βββ roadmap.md # Release milestones and objectives
β βββ tasks.md # Sprint tracker (backlog / current / completed)
βββ project/
β βββ project.yaml # Project config, rules, and AI context (MANDATED)
β βββ requirements.md # Functional & non-functional requirements
βββ quality/
β βββ tests.md # Test strategy, coverage targets, acceptance criteria
βββ security/
βββ security-decisions.md # ADR-style security design decisions
βββ threat-model.md # Threat inventory with impact/likelihood/mitigation
Also generated at project root: an AI context file (
.github/copilot-instructions.md,CLAUDE.md,.cursor/rules/specpilot.mdc,.windsurfrules,.antigravity/rules.mdetc.) based on your selected IDE/Agent
SpecPilot requires no global configuration. Each project is self-contained with settings in project.yaml.
SpecPilot generates AI agent configuration files during project initialization. When you run specpilot init, you'll be prompted to select your AI IDE/Agent:
Desktop IDEs (Workspace Settings):
Cloud-Based AI Agents (Instruction Files):
CLAUDE.md)Generated Configuration Files:
Each IDE/Agent selection generates one AI context file at the project root:
| IDE/Agent | Generated file |
|---|---|
| GitHub Copilot | .github/copilot-instructions.md |
| Codex | .github/copilot-instructions.md |
| Cursor | .cursor/rules/specpilot.mdc |
| Windsurf | .windsurfrules |
| Antigravity | .antigravity/rules.md |
| Claude Code | CLAUDE.md |
All context files contain: project name/stack, critical mandates, Code Philosophy, Code Rules, and a Re-Anchor Prompt.
For desktop IDEs: .vscode/settings.json (or .cursor/, .windsurf/, etc.)
Each IDE/Agent selection also generates 8 specpilot-* slash/workflow commands (status, reanchor, report, sync, refine, validate, archive, backfill) that mirror key CLI operations as in-editor commands β e.g. .claude/commands/specpilot-status.md for Claude Code, .cursor/commands/ for Cursor, .github/prompts/ for GitHub Copilot. Running backfill on an existing project fills in any commands missing for your already-configured IDE(s). See the Full Guide for the complete list and per-IDE paths.
The generated settings/instructions automatically configure your AI agent to:
.specs/ folder in AI contextExample:
# During init, you'll be prompted to select your IDE/Agent
specpilot init my-project --lang typescript --framework react
# Respond with your preferred IDE/Agent:
# - vscode, cursor, windsurf, antigravity (desktop)
# - claude-code, codex (cloud agents)
sudo chown -R $USER ~/.npm-global
npm config set prefix '~/.npm-global'
specpilot list --verbose
specpilot validate --verbose --fix
Error: "Source structure 'complex' not found"
# For NEW projects, use:
specpilot init my-project
# For EXISTING projects without specs:
specpilot add-specs
# Only use migrate if you have an old .project-spec folder
specpilot migrate --from complex --to simple --backup
DEBUG=specpilot specpilot <command>
SpecPilot implements Specification-Driven Development (SDD) where specifications come first:
Specifications β Architecture β Code β Tests β Deployment
Benefits:
This project follows SDD principles. See .specs/ for contribution guidelines.
git clone https://github.com/girishr/SpecPilot.git
cd SpecPilot
npm install
npm run build
npm link # For local testing
.specs/project/requirements.md.specs/planning/tasks.mdspecpilot validate before committingMIT License - see LICENSE file for details.
Built with specification-driven development principles for serious production projects.
TypeScript
99.7%