Releases: Fission-AI/OpenSpec
Release list
v1.10.0 - Zed support, quieter installs
What's New in v1.10.0
Zed joins the supported tools, init speaks your language, and installing OpenSpec no longer trips npm's alarm.
New
- Zed Agent -
openspec init --tools zedinstalls the workflow skills into.agents/skills/, where Zed's built-in Agent finds them. Skills-only, so they're invoked as/openspec-propose. Requires Zed v1.4.2 or newer. - Non-English artifacts -
openspec init --language <language>sets the language for generated artifacts without hand-editingconfig.yaml. OpenSpec headings andSHALL/MUSTstay in English, so your specs still validate.
Improved
- Installing - the published package now declares no install scripts at all, so
npm install -g @fission-ai/openspecno longer emits theallow-scriptswarning that read like a packaging fault (and whose suggested fix,npm approve-scripts, never worked for a global install anyway). The shell-completions tip now comes from the CLI itself: once, on stderr, and only when there's a human there to read it. - Task plans - generated tasks now have to say how you'd know they're done, whether that's a test, a command, an observable result, or a delivered artifact. "Implement the thing" no longer passes for a plan.
- Prompts - the multi-select picker now shows the full key help from the prompt library, so navigation, select-all and invert are discoverable instead of folklore.
Fixed
- Feedback -
openspec feedbackused your entire report as the issue title and left the body with nothing but metadata. Reports now keep their text, and titles stay a readable length. - Archive - retiring a capability could dead-end on
Spec must have at least one requirementwith no guidance at all, when the spec also held content the merge couldn't account for. The abort now names exactly what's in the way. - Stores - the
specsinstruction read main specs from a path relative to your working directory. Under a store that missed the spec entirely, or, worse, quietly returned a different capability that happened to share the name. - Profiles - a custom profile could select archive without sync, leaving the archive workflow calling a workflow that was never installed.
- OpenCode -
/opsx-propose add-authdroppedadd-authbefore the workflow ever saw it. - Schemas with no specs artifact - changes created under one failed validation immediately, demanding a delta that schema could never produce.
- Output hygiene - the first-run telemetry notice went to stdout, so
openspec spec show auth > auth.mdwrote the notice into the file ahead of the spec. It goes to stderr now. openspec update- stopped advising Claude Code, Codex and other CLI tools to restart an IDE they don't have.
New Contributors
- @ryandemelo made their first contribution in #1666
Full Changelog: v1.9.0...v1.10.0
v1.9.0 - Command Code & safer specs
What's New in v1.9.0
New tool support, sharper validation, and safer spec rebuilds — plus clearer signals when you wander off the beaten path.
New
- Command Code support —
openspec init --tools command-codeinstalls the OpenSpec workflow skills and, as an adapter-backed tool, generates/opsx-*slash commands under.commandcode/commands/. (#1613, #1622) openspec validate --archived— an opt-in check that every change inchanges/archive/has all itstasks.mdboxes ticked, exiting non-zero if not. Perfect for a pre-commit or CI hook to catch work archived unfinished. (#1604)
Improved
- Honest root resolution —
list,validate --all/--changes/--specs, andschemasnow fail loudly (non-zero) outside an OpenSpec root instead of quietly resolving an empty one. Single-itemvalidate <name>is unchanged. (#1612, #1616) - Authoring-time scenario safety —
validatecounts every####child of a requirement as a scenario, catching a MODIFIED block that would drop one before archive deletes it. (#1521) - Task-numbering warnings —
validateflags duplicate task IDs and tasks under a mismatched## N.group forspec-drivenchanges (enforced under--strict). (#1523) - Quieter automation —
archiveuses plain-text prompts on non-TTY stdout (no stray escape codes in CI logs), and the first-run telemetry notice no longer intrudes on--json. (#1603, #1609) - Sharper guidance — the "Restart your IDE" hint shows only for IDE-resident tools, and the config picker now labels the
updateworkflow. (#1610, #1632)
Fixed
- Faithful spec rebuilds — syncing a delta preserves the blank lines around
## Requirementsand ends the file with exactly one newline. (#1528, #1637) - Schema fork fidelity —
openspec schema forkkeeps comments, block-scalar style, and key order by editing YAML in place. (#1607) - Shared-skills ownership —
openspec updatewon't overwrite a vendor-neutral.agentsskills tree (or flip its target) on a legacy Codex upgrade. (#1522) - Apply-scope honesty — apply guidance now tells agents to surface out-of-scope work rather than silently defer it. (#1530)
New Contributors 🎉
Four developers shipped their very first OpenSpec contribution in this release — welcome aboard!
- @Marzx13 made their first contribution in #1528
- @Angelthebestone made their first contribution in #1613
- @Patodo made their first contribution in #1616
- @jwang513 made their first contribution in #1637
Thanks 💙
v1.9.0 is a community release through and through. A hearty thank-you to @alectimison-maker for continuing to sharpen validation (#1523), and to everyone who filed an issue, tested a build, or opened a PR this cycle. Every improvement here started with someone noticing something — please keep it coming.
Full Changelog: v1.8.0...v1.9.0
v1.8.0 - More agents, sturdier archives
What's New in v1.8.0
Thirty-four merged PRs from fifteen contributors. More agents pull up a chair, archive learns to use its words, and validate starts catching problems while you can still fix them cheaply.
New
- Three more agent targets - The vendor-neutral
agents(writes skills to the shared.agents/skills/that AGENTS.md-aware assistants read), MiniMax Code, and Atlassian's Rovo Dev CLI.openspec init --tools agentsand you're set. - GitHub Copilot cloud agent, opt-in -
openspec initcan generate Copilot coding-agent files for you. It asks first and defaults to No, so nothing lands in.github/unless you say yes. - Retire a capability on archive - A change that declares
retire_capabilities: truecan remove a capability's last requirement and cleanly delete its spec, instead of hitting a wall at archive time.
Improved
- Archive that talks back - Run
openspec archivewith no terminal (an agent, a CI job) and it now names the exact flag it needs and hands you a paste-ready rerun, instead of dying on a cryptic prompt error. validatecatches scenario loss early - A MODIFIED requirement that would drop a scenario now fails at authoring time, naming the scenarios to copy back, instead of ambushing you at archive.- Sub-tasks finally count - Nested checkboxes in
tasks.mdcount toward progress, so "✓ Complete" actually means complete. - Telemetry honors your config -
telemetry.enabled: falseturns off anonymous telemetry and update checks. Env and CI opt-outs still win. - Sharper agent workflows - Propose stays focused on planning and hands off cleanly to apply, explore scaffolds a real change before writing to it, and nested
specs/<area>/<capability>/paths are preserved end to end.
Fixed
- Stops eating its own commands -
initandupdateno longer delete the CoStrict and Junie command files they just generated. - Non-English specs validate -
SHALL/MUSTis treated as guidance in normal mode, so requirements in other languages pass. Strict mode still enforces it. - Your notes stay put - Archive warns before a merge would drop a note tucked under a requirement, and generated files stay inside their boundaries without breaking linked monorepos.
New Contributors
- @Ardakilic made their first contribution in #1079
- @Shashank200345 made their first contribution in #1153
- @ismet made their first contribution in #1196
- @NicoAvanzDev made their first contribution in #1274
- @solanab made their first contribution in #1303
- @SuhaibAslam made their first contribution in #1487
- @alectimison-maker made their first contribution in #1491
- @FasterPHP made their first contribution in #1513
Full Changelog: v1.7.0...v1.8.0
v1.7.0 - New tools, smarter updates
What's New in v1.7.0
Ninety merged PRs from nineteen contributors. New tools, sturdier archives, and a CLI that keeps itself fresh.
New
openspec updatekeeps you current - It now checks npm for a newer release and offers to run the upgrade for you. One less thing to remember.- Five new AI tools - Welcome ZCode, Hermes Agent, CodeArts Agent, and Kimi Code; Codex now runs skills-only. And if skills.sh is your thing,
npx skills add Fission-AI/OpenSpecworks too. - One default store for your whole machine -
openspec config set defaultStore <id>and every repo without its own config resolves through it. - Changes without spec changes - Pure refactors and docs work can declare
skip_specs: trueand move straight through validate and archive. - Project context in every workflow - Schemas can carry per-operation guidance, and
openspec instructions apply|archiveserve it to your agent right when it needs it.
Improved
- Slash commands, spelled the way your tool spells them - Generated content now matches each tool's registered command names across all 30+ supported tools.
- Archives flow - Already-synced deltas glide through as no-ops, your authored
## Purposecarries into new specs, and dated names stay tidy on re-archive. - Multi-select prompts got proper checkboxes -
[x]for multi-select, exactly as your fingers expect. - A welcome screen for everyone - Honors your OS Reduce Motion setting,
--no-animation, and waits politely for Enter. - Nested spec folders everywhere -
specs/<area>/<capability>/spec.mdis first-class in validate, apply, archive, and view.
Fixed
- Leaner, policy-friendly installs - Telemetry now sends its single event with a plain fetch, so installs are ~160 packages lighter and sail through supply-chain age policies like pnpm's
minimumReleaseAge(#1390). - Completions everywhere you shell - fish gets true fish completions, PowerShell scripts parse cleanly, and Oh My Zsh installs land in your actual
$ZSH. - Windows input flows smoothly - keystrokes register immediately after the welcome screen.
openspec feedbackalways delivers - your message reaches an issue or a ready-to-send link, whatever gh is up to.- Files from every editor parse - UTF-8 BOMs from Windows editors are handled transparently.
- Change names with leading digits -
0001-add-authis valid everywhere, matching the archive conventions.
Want every detail? All 79 changes are itemized in the CHANGELOG.
Thanks
Every PR in this release, big or small, made it better:
@TabishB, @showms, @mc856, @hsusul, @xiaoquisme, @vishnujayvel, @taltas, @nmrtn, @mehdishahdoost, @jikkujoyce, @javigomez, @fyeeme, @c4patino, @benjymoses, @akeyz, @Lukk17, @HowardYan888, @CodeArtsAgent, @clay-good
New Contributors
- @javigomez made their first contribution in #1151
- @akeyz made their first contribution in #1208
- @xiaoquisme made their first contribution in #1292
- @fyeeme made their first contribution in #1209
- @mc856 made their first contribution in #1191
- @CodeArtsAgent made their first contribution in #1266
- @showms made their first contribution in #1283
- @vishnujayvel made their first contribution in #1391
- @benjymoses made their first contribution in #1299
- @nmrtn made their first contribution in #1109
- @Lukk17 made their first contribution in #1255
- @taltas made their first contribution in #1428
- @c4patino made their first contribution in #1455
- @hsusul made their first contribution in #1447
- @jikkujoyce made their first contribution in #1469
- @mehdishahdoost made their first contribution in #1167
Full Changelog: v1.6.0...v1.7.0
v1.6.0 - OPSX Update, Tool Support
What's New in v1.6.0
This release adds a safer way to revise plans in place, expands tool support, and hardens validation, archiving, and store setup.
New
- Update planning artifacts - Use
/opsx:updateto revise an existing change's plan and reconcile related artifacts without crossing into implementation work. - Oh My Pi support - Generate native OPSX commands and skills for Oh My Pi projects, with automatic tool detection and the expected
.omplayout. - TRAE support - Generate
.trae/commands/opsx-<id>.mdcommands for TRAE projects.
Improved
- Generated skill permissions - Generated skills and Claude commands can pre-approve the OpenSpec CLI, avoiding repeated confirmation prompts while leaving other tools under normal permission controls.
- Requirement handling - Validation now reads fenced examples, metadata, multi-line descriptions, nested deltas, and normative keywords more consistently across changes and main specs.
Fixed
- Fresh stores - Newly created stores can be registered and used before empty changes, specs, or archive directories have been committed.
- Archive safety - Stale
MODIFIEDrequirements stop instead of silently deleting scenarios added by an earlier archive. - Resolution and task progress -
validate,view,list, and archive checks now agree on change resolution and correctly handle nested specs and task files. - Archive failure signaling - Blocked human-mode archive operations now exit non-zero, so scripts and CI no longer interpret validation failures as success.
New Contributors
- @danilopopeye made their first contribution in #1311
- @ercanerdogan made their first contribution in #1261
- @jjxyxsjr made their first contribution in #1090
- @xianzheTM made their first contribution in #1276
Full Changelog: v1.5.0...v1.6.0
v1.6.0-beta.1
Beta prerelease. Install with npm install -g @fission-ai/openspec@beta.
What's Changed
- fix(resolution): converge validate, view, and archive onto canonical resolution (#1182, #1202, #1156) by @clay-good in #1280
- docs: add cloudflare documentation deployment website by @clay-good in #1285
- Fix
archiveexit code on validation failure by @danilopopeye in #1311 - feat(skills): propose /opsx:update planning-artifact update skill by @clay-good in #1278
- refactor: unify requirement reader and surface #498 by @clay-good in #1281
- feat(skills): auto-approve the openspec CLI in generated skills and commands by @clay-good in #1300
- fix archive scenario drift for #1246 by @zhangsan582 in #1252
- docs: clarify change name format by @ercanerdogan in #1261
- chore: remove stale npm lockfile by @TabishB in #1319
- feat: add Trae command adapter by @jjxyxsjr in #1090
- feat: add Oh My Pi (OMP) tool support by @xianzheTM in #1276
- chore: remove scheduled docs workflow by @TabishB in #1324
- Fix Windows CI flake hardening by @TabishB in #1325
- ci(release): add beta prerelease workflow by @clay-good in #1327
- fix(stores): allow empty store registration by @TabishB in #1328
New Contributors
- @danilopopeye made their first contribution in #1311
- @ercanerdogan made their first contribution in #1261
- @jjxyxsjr made their first contribution in #1090
- @xianzheTM made their first contribution in #1276
Full Changelog: v1.5.0...v1.6.0-beta.1
v1.5.0 - Stores Beta
What's New in v1.5.0
Stores arrives in very early beta — a simpler model for organizing specs and changes — alongside a couple of generation and config fixes.
New
- Stores (very early beta) - A simpler way to organize specs and changes, replacing the workspace and initiative model. Still rough — expect breaking changes while it stabilizes.
Fixed
- Config parsing - Configuration values wrapped in JSON containers are now parsed correctly.
- YAML frontmatter - Carriage returns in generated command descriptions are now escaped instead of written literally, which could silently corrupt CRLF-authored values.
New Contributors
- @clay-good made their first contribution in #1237
- @zied-jlassi made their first contribution in #1240
- @zhangsan582 made their first contribution in #1244
Full Changelog: v1.4.1...v1.5.0
v1.4.1 - Update Fix
What's New in v1.4.1
Fixed
openspec update- Projects with their ownworkspace.yaml(like Dagster) now runopenspec updatenormally again.
v1.4.0 - Kimi CLI, Mistral Vibe
What's New in v1.4.0
Two new agent integrations — Kimi CLI and Mistral Vibe — plus sync skills enabled by default and a round of parsing and shell fixes.
New
- Kimi CLI support - Initialize Kimi CLI as a skills-only tool. OpenSpec skills land in
.kimi/skills/for use via/skill:openspec-*. - Mistral Vibe support - Initialize Mistral Vibe as a skills-only tool, with skills generated under
.vibe/skills/. - Sync skills by default - New installs now generate
/opsx:syncskills and commands out of the box in the core profile.
Improved
- Clearer validation hints - When a requirement has SHALL/MUST only in its header,
openspec validatenow tells you to move the keyword onto the requirement body line instead of showing a generic error.
Fixed
- Case-insensitive requirement headers - Requirement headers now parse regardless of capitalization, so specs no longer fail over header casing.
- Zsh completions on oh-my-zsh - Tab completion now installs correctly under oh-my-zsh's
compinitsetup.
New Contributors
- @Miss-you made their first contribution in #1003
- @davseby made their first contribution in #1031
- @JiangWay made their first contribution in #1043
- @HowardYan888 made their first contribution in #1059
- @Pluviobyte made their first contribution in #1135
Full Changelog: v1.3.1...v1.4.0
v1.3.1 - Path & Telemetry Fixes
What's New in v1.3.1
A batch of path resolution and telemetry reliability fixes for workflow artifacts, validation, and locked-down networks.
Fixed
- Canonical artifact paths - Workflow artifact paths now resolve through the native
realpath, so symlinks and case-insensitive filesystems no longer cause mismatches during apply and archive. - Glob artifact outputs - Apply instructions with glob artifact outputs resolve correctly. Literal outputs are enforced as file paths.
- Hidden spec requirements - Validation now detects requirements nested inside fenced code blocks or otherwise hidden in main specs.
- Clean
--jsonoutput - Spinner progress no longer leaks into stderr when--jsonis passed, so agents parsing combined stdout/stderr get clean JSON. - Silent telemetry in firewalled networks - PostHog errors are swallowed with a 1s timeout and retries/remote config disabled, so
PostHogFetchNetworkErrorno longer appears in locked-down environments. Telemetry opt-out is documented earlier in the README, install guide, and CLI reference. - Telemetry config on XDG and Windows - Honors
XDG_CONFIG_HOMEon Linux and%APPDATA%on Windows when locating the telemetry config file. - Glob-special characters in paths - Directory paths containing glob metacharacters are now escaped before matching.
New Contributors
Full Changelog: v1.3.0...v1.3.1