docs/install/pypi.md
Spec Kit is published to PyPI as specify-cli, maintained by the Spec Kit maintainers. Installing from PyPI is the second supported install route alongside installing from the GitHub source. Use whichever fits your workflow — both provide the same specify CLI.
[!NOTE] The PyPI release version tracks the GitHub release tags (for example, PyPI
0.12.11corresponds to thev0.12.11tag).specify versionis only a local version/runtime sanity check — it reports the installed version but not where thespecifyexecutable came from, so it cannot distinguish a PyPI install from a Git install. To confirm the install source, inspect the source metadata your package manager records:pipx list --jsonreports the exact install specification for each tool, and for uv/pip installs you can check the package's PEP 610direct_url.jsoninside its*.dist-infodirectory (a Git or URL install records the repository/archive URL there, while a plain PyPI index install does not create that file). Note thatpip show specify-clionly prints package metadata and will not see uv/pipx-managed environments from the host interpreter.
Use whichever Python tool you already have:
# Using uv (recommended)
uv tool install specify-cli
# Or using pipx
pipx install specify-cli
# Or using pip
pip install specify-cli
Pin an exact version for reproducible installs (check PyPI or Releases for available versions):
# Using uv
uv tool install specify-cli==0.12.11
# Or using pipx
pipx install specify-cli==0.12.11
# Or using pip
pip install specify-cli==0.12.11
specify version
specify init <PROJECT_NAME> --integration copilot
Upgrade by reinstalling the package through the same tool you used for the original install. If you originally pinned a version, note that uv tool upgrade preserves that pin; to move to the newest PyPI release, use an unpinned install command so you do not keep the existing version pin:
# Using uv
uv tool install --force specify-cli
# Or using pipx
pipx install --force specify-cli
# Or using pip
pip install --upgrade specify-cli
[!NOTE]
specify self upgradecurrently rebuildsuv toolandpipxinstalls from the GitHub source release URL rather than preserving a PyPI-based installation. If you want to stay on the PyPI route, use the package-manager commands above. A plainpip install specify-cliis treated as an unmanaged install — upgrade it withpip install --upgrade specify-cli. See the Upgrade Guide for details.
# Using uv
uv tool uninstall specify-cli
# Or using pipx
pipx uninstall specify-cli
# Or using pip
pip uninstall specify-cli
Head to the Quick Start to initialize your first project.