OpenSpec Quickstart: Install, Workflow, and Common Pitfalls Fission AI released OpenSpec, a free open-source Node.js CLI that lets developers and coding agents agree on a change in plain Markdown before any code is written. The tool uses a change-centric workflow with ADDED, MODIFIED, and REMOVED spec deltas and supports 30+ AI assistants including Claude Code, Cursor, GitHub Copilot, and Gemini CLI. It positions itself as a lighter alternative to phase-gated spec-driven development frameworks such as GitHub Spec Kit and Kiro. OpenSpec https://github.com/Fission-AI/OpenSpec is a free, open-source CLI from Fission AI that gets you and your coding agent to agree on a change in plain Markdown before any code gets written, without the phase-gated ceremony of heavier spec-driven frameworks. Most teams who try Spec-Driven Development stall on the same trade-off: enough process to stop an agent from guessing, without so much scaffolding that a fifty-line bugfix needs a proposal document. OpenSpec's answer is to skip the "document the whole system first" instinct entirely and write specs only for what a change actually touches, using ADDED , MODIFIED , and REMOVED deltas instead of a full rewrite every time. That change-centric design is also why OpenSpec keeps coming up next to GitHub Spec Kit, Kiro, and Superpowers in the comparison of SDD tool categories https://www.glukhov.org/ai-devtools/ai-coding-assistants/spec-kit-vs-kiro-vs-claude-code/ -- it is usually the pick when a team wants reviewable specs without an 800-line planning phase. This guide covers installing the CLI, the four-command workflow you actually use day to day, what a change looks like on disk, and the questions and complaints that show up most often on Reddit and in OpenSpec's own issue tracker. OpenSpec describes its own philosophy in four lines: fluid not rigid, iterative not waterfall, easy not complex, built for brownfield not just greenfield. In practice that means there are no locked phases -- you can edit a proposal, a spec, or a task list at any point in a change, rather than being forced through specify-then-plan-then-implement in strict order the way the tool-neutral SDD workflow https://www.glukhov.org/app-architecture/documentation/spec-driven-development-workflow/ describes it. A change in OpenSpec produces up to four Markdown artifacts in its own folder: | Artifact | Purpose | |---|---| | proposal.md | Why the change exists and what it changes, in plain language | | specs/ | Delta requirements and scenarios -- the testable spec for this change | | design.md | Optional technical approach, for changes that need one | | tasks.md | The implementation checklist the agent works through | Once a change is implemented and archived, its delta specs merge into openspec/specs/ , which becomes the durable, current-state description of your system -- the same "spec as source of truth" idea covered in What Is Spec-Driven Development? https://www.glukhov.org/app-architecture/documentation/what-is-spec-driven-development/ , just scoped one change at a time instead of written all at once. OpenSpec is a Node.js CLI, so you need Node 20.19.0 or newer on your machine. node --version Install the CLI globally with npm, then verify it landed on your PATH : npm install -g @fission-ai/openspec@latest openspec --version Deno, pnpm, yarn, bun, and nix are also supported install paths if that fits your setup better than npm. Once installed, initialize it inside a project: cd your-project openspec init openspec init asks which AI tools you use and writes the matching skill and command files -- OpenSpec supports 30+ assistants, including Claude Code, Cursor, GitHub Copilot, Gemini CLI, Codex, Kiro, and OpenCode. For CI or scripted setup, skip the picker entirely: openspec init --tools claude,cursor set up specific tools openspec init --tools all every supported tool openspec init --tools none openspec/ structure only, no tool files Restart your IDE afterward so it picks up the newly written skills and commands. If you would rather have your assistant do the whole install for you, OpenSpec ships a setup prompt you can paste into Claude Code https://www.glukhov.org/ai-devtools/claude-code/ or another agent, which runs the install, executes openspec init , and reports back what it configured. This is the one thing that trips up almost everyone on their first day: openspec commands run in your terminal, but /opsx: commands run in your AI assistant's chat window. There is no separate "interactive mode" to enter -- typing the slash command in chat is how you start. php flowchart LR A "/opsx:explore optional " -- B "/opsx:propose change-name" B -- C "/opsx:apply" C -- D "/opsx:archive" D -- |specs merged| E "openspec/specs/" /opsx:explore /opsx:propose