Core Commands
These commands form the foundation of Specify CLI functionality.init
Initialize a new Specify project with AI assistant integration.check
Verify installed tools and AI assistant CLI availability.version
Display version and system information.- CLI Version — Installed specify-cli package version
- Template Version — Latest template version from GitHub releases
- Released — Template release date
- Python — Python interpreter version
- Platform — Operating system (Linux, Darwin, Windows)
- Architecture — CPU architecture (x86_64, arm64, etc.)
- OS Version — Detailed OS version string
Extension Commands
Manage Spec Kit extensions for custom workflows and integrations. All extension commands require running from within a Spec Kit project (must have.specify/ directory).
extension list
List installed extensions in the current project.Show available extensions from catalog (instead of installed)
Show both installed and available extensions
extension add
Install an extension from catalog, URL, or local directory.Extension name (from catalog), URL, or local directory path
Install from local directory (development mode)
Install from custom URL (must be HTTPS or localhost)
- Downloads/copies extension files
- Validates extension manifest (
extension.yml) - Checks compatibility with current Spec Kit version
- Installs to
.specify/extensions/<extension-id>/ - Registers commands with AI agent
- Sets up hooks (if any)
extension remove
Uninstall an extension from the current project.Extension ID to remove
Don’t remove configuration files (preserves settings)
Skip confirmation prompt
- Removes commands from AI agent
- Deletes extension directory
- Backs up config files (unless
--keep-config) - Updates extension registry
extension search
Search for available extensions in the catalog.Search query to filter extensions by name or description
Filter by tag (e.g.,
testing, deployment, documentation)Filter by author name
Show only verified extensions
extension info
Show detailed information about a specific extension.Extension ID or name to get information about
- Extension name, version, and verification status
- Description and purpose
- Author and license
- Requirements (Spec Kit version, tools, dependencies)
- Provided features (commands, hooks)
- Tags and categories
- Statistics (downloads, stars)
- Links (repository, homepage, documentation, changelog)
- Installation status
extension update
Update extension(s) to the latest version.Extension ID to update. If not specified, checks all installed extensions for updates.
extension enable
Enable a disabled extension.Extension ID to enable
- Updates extension registry
- Enables hooks in
extensions.yml - Makes commands available to AI agent
extension disable
Disable an extension without removing it.Extension ID to disable
- Updates extension registry
- Disables hooks in
extensions.yml - Removes commands from AI agent
- Preserves all files and configuration
specify extension enable <extension>
Global Options
These options work with most Specify commands:Help
Display help information for any command:Version
Display version information:Exit Codes
Specify CLI uses standard exit codes:- 0 — Success
- 1 — General error (invalid arguments, missing files, failed operation)
Environment Variables
Specify CLI respects the following environment variables:Authentication
GitHub personal access token for API requests. Increases rate limits from 60/hour to 5,000/hour.Alternative:
GH_TOKENAlternative name for
GITHUB_TOKENAgent-Specific
Required for Codex CLI. Must point to the
.codex/ directory in your project.Example:Configuration Files
Project Structure
Specify CLI creates and manages the following structure:Extension Manifest
Extensions must includeextension.yml:
Getting Help
Command Help
Use--help with any command:
Issues and Support
- GitHub Issues: https://github.com/github/spec-kit/issues
- Documentation: https://github.com/github/spec-kit
- Discussions: https://github.com/github/spec-kit/discussions
Common Workflows
Create a new project:See Also
- CLI Overview — Introduction to Specify CLI
- specify init — Detailed init command documentation
- specify check — Detailed check command documentation