# Speckit CLI Setup

> Detect and install the Spec Kit `specify` CLI that every other speckit skill depends on. USE FOR: checking whether `specify` is installed/on PATH, installing it when missing, fixing "command not found: specify", confirming the CLI is new enough (>= 0.11). DO NOT USE FOR: upgrading an already-installed CLI to a newer release (use speckit-self) or verifying project tools (use speckit-check).

- Skill: `github/speckit-cli-setup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add github/speckit-cli-setup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/github/speckit-cli-setup/raw
- Safety review: WARNING
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: GitHub (Microsoft) (https://skillmd.com/u/github)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/github/speckit-cli-setup

---


# Spec Kit — CLI setup

The Spec Kit plugin drives the **`specify`** command-line tool. Every other speckit
skill assumes `specify` is installed and on `PATH`. This skill detects it and
installs it when it is missing.

## Detect first

Always check availability before doing anything else:

```bash
specify --version
```

- **Prints a version (e.g. `specify 0.15.0`)** → the CLI is installed. If a skill needs
  `bundle` or `workflow step`, ensure the version is **>= 0.11**; if it is older, hand
  off to the **speckit-self** skill to upgrade.
- **`command not found` / non-zero exit** → not installed. Install it (below).

## Install

Spec Kit's `specify` CLI is published on PyPI as
**[`specify-cli`](https://pypi.org/project/specify-cli/)**. Install the **latest**
release — this plugin is not pinned to a specific `specify` version.
**[uv](https://docs.astral.sh/uv/)** is the recommended installer;
**[pipx](https://pipx.pypa.io/)** is an alternative:

```bash
# Recommended: uv (persistent install, latest from PyPI)
uv tool install specify-cli

# Alternative: pipx (persistent install, latest from PyPI)
pipx install specify-cli

# One-off / ephemeral (no install) — handy to bootstrap a project.
# Pass --script (py keeps this cross-platform) so the PTY-backed agent shell
# doesn't hit the interactive "Choose script type" chooser and hang.
uvx --from specify-cli specify init . --integration copilot --integration-options="--skills" --script py
```

If neither `uv` nor `pipx` is available, tell the user to install `uv` first
(`curl -LsSf https://astral.sh/uv/install.sh | sh`, or see <https://docs.astral.sh/uv/>),
then re-run the install. Do not silently install system Python packages.

## Verify

```bash
specify --version
specify check
```

## Notes

- This skill is the **prerequisite** for the rest of the plugin. If any speckit skill
  finds that `specify` is not available, it should run this skill's detect/install
  steps first, then retry.
- For an **already-installed** CLI that just needs a newer version, prefer the
  **speckit-self** skill (`specify self upgrade`) over reinstalling. To refresh a
  `uv`/`pipx` install to the latest PyPI release, use `uv tool upgrade specify-cli`
  or `pipx upgrade specify-cli`.
- Installing from PyPI always pulls the latest published `specify-cli`. Only pin a
  specific version (e.g. `uv tool install "specify-cli==0.15.0"`) if you have a
  concrete reason to hold back.

