Install Spec Kit: specify-cli Setup and the /speckit-* Command Changes
Spec Kit is GitHub’s open-source toolkit for Spec-Driven Development: write the specification first, then a plan and tasks, and finally let your AI coding assistant implement the tasks. Its command line is called specify and comes from the specify-cli package.
Many tutorials online still use the old install command, the --ai flag and command names like /speckit.specify, and copying them often fails. This page follows the official documentation to show the current correct way, and lists what has changed.
When this was checked
Written against the official Spec Kit documentation, checked on 2026-10-26. The project moves quickly, so trust specify --help on your machine and the official docs over this page when they differ.
Who this is for
- People who want to try a spec-driven workflow inside an AI coding assistant such as Claude Code, GitHub Copilot, Gemini CLI, CodeBuddy CLI, Pi or Oh My Pi.
- People who installed Spec Kit from an older tutorial and now get errors or missing commands.
Prerequisites
| Item | Requirement |
|---|---|
| OS | Linux, macOS, or Windows (PowerShell scripts work without WSL) |
| Python | 3.11 or higher |
| Package manager | uv (recommended) or pipx |
| AI coding assistant | Any supported assistant; the official docs list dozens of integrations |
| Git | Optional, only needed when the git extension is enabled |
Spec Kit itself does not need Node.js. If your assistant is installed through npm, see AI Agent CLI Installation first.
Install specify-cli
Option 1: From PyPI (shortest)
# Recommended: uvuv tool install specify-cli
# Or pipxpipx install specify-cli
# Or pippip install specify-cliTo pin a version: uv tool install specify-cli==0.12.11 (use the version from the releases page).
Option 2: From a GitHub release tag
The official docs list this as the recommended reproducible route. It needs uv:
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.ZReplace vX.Y.Z with a tag from Releases. Keep the leading v, for example v0.12.11.
Verify the install
specify versionspecify self checkspecify version confirms the command works and prints its version. specify self check is read-only and tells you whether a newer release exists.
Initialize a project
specify init my-project --integration claudecd my-project--integration picks your AI assistant. Common values are claude, copilot, gemini, codebuddy, pi and omp. Useful options:
--script sh|ps|py: choose the script type. The default ispson Windows andshelsewhere.--here --force: initialize inside an existing non-empty directory.--forceacknowledges the merge warning, so commit or back up local changes first.--non-interactive: for CI. Without--integrationit defaults to GitHub Copilot, so do not be caught out by that default.
Command names: /speckit-*
After initialization, run these in your AI assistant’s chat, not in the terminal:
| Step | Command | What it does |
|---|---|---|
| 1 | /speckit-constitution | Writes the project principles that later steps are checked against; once per project |
| 2 | /speckit-specify | Turns a plain-language description of the feature into spec.md |
| 3 | /speckit-clarify | Asks about gaps in the spec and folds the answers back in |
| 4 | /speckit-plan | Generates plan.md and other design artifacts for your tech stack |
| 5 | /speckit-checklist | Generates a requirements-quality checklist |
| 6 | /speckit-tasks | Generates a dependency-ordered tasks.md |
| 7 | /speckit-analyze | Read-only check for conflicts and gaps across spec.md, plan.md and tasks.md |
| 8 | /speckit-implement | Executes tasks.md in order |
| 9 | /speckit-converge | Checks the code against the spec and appends tasks for any gaps; repeat implement and converge until it reports Converged |
The shortest path is specify → plan → tasks → implement → converge. Only the full path adds constitution, clarify, checklist and analyze.
Your assistant may spell them differently
The official quickstart uses the hyphenated /speckit-* names (GitHub Copilot’s default skills mode). Older tutorials and the upgrade notes still show the dotted form such as /speckit.specify. The invocation format differs between assistants and modes, so go by the names that actually appear in your assistant’s command list after initialization.
What changed compared with older tutorials
| Common in older tutorials | Now |
|---|---|
Only uv tool install ... --from git+https://... | specify-cli is also on PyPI, installable with uv, pipx or pip; installing from a GitHub tag is still supported |
specify init --ai claude | The official docs use --integration claude throughout |
/speckit.specify, /speckit.plan | The quickstart uses /speckit-specify and /speckit-plan, and adds /speckit-converge |
/constitution propagates changes into templates and command files | It now only updates .specify/memory/constitution.md; to restore the old propagation, run specify preset add constitution-sync |
| Git features always on | Now an optional extension: specify extension add git |
| The active feature is inferred from the Git branch | .specify/feature.json records the active feature directory |
Upgrade
Upgrade the command line itself:
specify self check # read-only: is there a newer release?specify self upgrade --dry-run # preview without upgradingspecify self upgrade # upgrade to the latest stable releasespecify self upgrade --tag vX.Y.Z # pin a release tagUpgrade the files inside an existing project, from the project directory:
specify integration status # list installed integrations and modified filesspecify integration upgrade <key> # run once per installed integrationspecify extension update # update all extensionsPass --force to specify integration upgrade only when it reports locally modified managed files and you have reviewed the difference.
Common problems
command not found: uv: install uv first, then run the install command again.No such option: --integration: an oldspecify(for example 0.1.6) is earlier on yourPATH. Reinstall with the same tool you used originally, for exampleuv tool install --force specify-cli, then confirm withspecify version.- Two copies installed: installing with uv, pipx and pip each leaves a separate copy. Upgrade with the same tool and do not mix them.
- A PyPI install does not upgrade itself: the version stays where you installed it, so use the upgrade commands above.
- Init refuses an existing directory: once you have committed or backed up, add
--here --force.
Next steps
- To decide between Spec Kit and OpenSpec, read Spec Kit vs OpenSpec.
- To see the spec workflow HagiCode itself uses, read the Introduction to OpenSpec.
HagiCode
HagiCode is an agentic coding workspace. Rich, convenient UI interactions make planning, agent execution, and project work approachable and easy to navigate, creating an engaging development experience.
Explore an engaging development experience through rich, convenient UI interactions.
- SmartOpenSpec workflows turn intent into an executable path, from proposal to design, tasks, and a shipped change.
- EfficientMulti-agent execution keeps research, implementation, and review moving in parallel, across several repositories and the Agent CLIs you already use.
- InterestingRich, convenient UI interactions make planning, agent execution, and project work approachable and easy to navigate.
Download for Windows
Share HagiCode
Turn ideas into shipped software.
HagiCode is an agentic coding workspace. OpenSpec workflows plan the change, multi-agent execution carries it out, and Hero Scenario makes the long run visible, so ideas become shipped software.
- Smart
- OpenSpec workflows turn intent into a path from proposal to shipped change.
- Efficient
- Multi-agent execution runs research, build, and review in parallel.
- Fun
- Rich UI interactions make planning, agent work, and projects easier to follow.
© 2026 HagiCode | Powered By hagilight-starlight@0.20.0 | Branch: main | Commit: 0dde182 | Built:

