AI-powered Specification-Driven Development (SDD) CLI for enhanced productivity
npm install specify-clispecify-cli
=================
AI-powered Specification-Driven Development (SDD) CLI for enhanced productivity



Specify CLI is an AI-powered command-line tool that implements Specification-Driven Development (SDD) methodology. It helps developers and teams enhance productivity by:
- 🤖 AI-powered specification generation - Create detailed PRDs and technical specifications
- 📋 Task breakdown and estimation - Automatically decompose requirements into actionable tasks
- 🔍 Research and knowledge management - AI-assisted research and documentation
- ✅ Specification validation - Ensure completeness and consistency of requirements
- 🏢 Team collaboration - Workspace management with version control integration
- Authentication System: Secure API key management with profile support
- Workspace Management: Initialize and manage project workspaces with templates
- AI Document Generation: Create PRDs, technical specs, and task breakdowns
- Research Assistant: AI-powered research queries with structured output
- Validation Tools: Automated specification quality checking
- AWS CLI Style Interface: Familiar command structure for developers
sh-session
$ npm install -g specify-cli
$ spec COMMAND
running command...
$ spec (--version)
specify-cli/0.1.0 darwin-arm64 node-v22.11.0
$ spec --help [COMMAND]
USAGE
$ spec COMMAND
...
`
Quick Start
1. Authenticate with Specify.app
`bash
spec auth login
`2. Initialize a new workspace
`bash
spec workspace init
`3. Generate a Product Requirements Document
`bash
spec generate prd
`4. Break down specifications into tasks
`bash
spec generate tasks
`5. Validate your specifications
`bash
spec validate spec
`Commands
* spec auth login
* spec auth logout
* spec auth status
* spec generate prd
* spec generate tasks
* [spec help [COMMAND]](#spec-help-command)
* spec plugins
* spec plugins add PLUGIN
* spec plugins:inspect PLUGIN...
* spec plugins install PLUGIN
* spec plugins link PATH
* [spec plugins remove [PLUGIN]](#spec-plugins-remove-plugin)
* spec plugins reset
* [spec plugins uninstall [PLUGIN]](#spec-plugins-uninstall-plugin)
* [spec plugins unlink [PLUGIN]](#spec-plugins-unlink-plugin)
* spec plugins update
* [spec research query [QUERY]](#spec-research-query-query)
* spec validate spec
* spec workspace init
* spec workspace statusspec auth loginAuthenticate with Specify.app and configure API key
`
USAGE
$ spec auth login [-k ] [-p ]FLAGS
-k, --api-key= API key for authentication
-p, --profile= [default: default] Profile name for multiple configurations
DESCRIPTION
Authenticate with Specify.app and configure API key
EXAMPLES
$ spec auth login
$ spec auth login --api-key YOUR_API_KEY
`_See code: src/commands/auth/login.ts_
spec auth logoutRemove authentication credentials
`
USAGE
$ spec auth logout [-p ] [-a]FLAGS
-a, --all Logout from all profiles
-p, --profile= [default: default] Profile name to logout from
DESCRIPTION
Remove authentication credentials
EXAMPLES
$ spec auth logout
$ spec auth logout --profile production
`_See code: src/commands/auth/logout.ts_
spec auth statusShow current authentication status
`
USAGE
$ spec auth status [-p ]FLAGS
-p, --profile= [default: default] Profile name to check
DESCRIPTION
Show current authentication status
EXAMPLES
$ spec auth status
$ spec auth status --profile production
`_See code: src/commands/auth/status.ts_
spec generate prdGenerate Product Requirements Document (PRD) using AI
`
USAGE
$ spec generate prd [-i ] [-o ] [--interactive] [-t standard|agile|lean|enterprise]FLAGS
-i, --input= [default: specs/project.md] Input specification file
-o, --output= [default: docs/prd.md] Output PRD file
-t, --template=
DESCRIPTION
Generate Product Requirements Document (PRD) using AI
EXAMPLES
$ spec generate prd
$ spec generate prd --input specs/project.md --output docs/prd.md
`_See code: src/commands/generate/prd.ts_
spec generate tasksBreak down specifications into actionable tasks
`
USAGE
$ spec generate tasks [-i ] [-o ] [-f markdown|json|csv] [-p high|medium|low] [--estimate]FLAGS
-f, --format=
DESCRIPTION
Break down specifications into actionable tasks
EXAMPLES
$ spec generate tasks
$ spec generate tasks --input docs/prd.md --format json
`_See code: src/commands/generate/tasks.ts_
spec help [COMMAND]Display help for spec.
`
USAGE
$ spec help [COMMAND...] [-n]ARGUMENTS
COMMAND... Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for spec.
`_See code: @oclif/plugin-help_
spec pluginsList installed plugins.
`
USAGE
$ spec plugins [--json] [--core]FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ spec plugins
`_See code: @oclif/plugin-plugins_
spec plugins add PLUGINInstalls a plugin into spec.
`
USAGE
$ spec plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into spec.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the SPEC_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the SPEC_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ spec plugins add
EXAMPLES
Install a plugin from npm registry.
$ spec plugins add myplugin
Install a plugin from a github url.
$ spec plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ spec plugins add someuser/someplugin
`spec plugins:inspect PLUGIN...Displays installation properties of a plugin.
`
USAGE
$ spec plugins inspect PLUGIN...ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ spec plugins inspect myplugin
`_See code: @oclif/plugin-plugins_
spec plugins install PLUGINInstalls a plugin into spec.
`
USAGE
$ spec plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into spec.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the SPEC_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the SPEC_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ spec plugins add
EXAMPLES
Install a plugin from npm registry.
$ spec plugins install myplugin
Install a plugin from a github url.
$ spec plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ spec plugins install someuser/someplugin
`_See code: @oclif/plugin-plugins_
spec plugins link PATHLinks a plugin into the CLI for development.
`
USAGE
$ spec plugins link PATH [-h] [--install] [-v]ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ spec plugins link myplugin
`_See code: @oclif/plugin-plugins_
spec plugins remove [PLUGIN]Removes a plugin from the CLI.
`
USAGE
$ spec plugins remove [PLUGIN...] [-h] [-v]ARGUMENTS
PLUGIN... plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ spec plugins unlink
$ spec plugins remove
EXAMPLES
$ spec plugins remove myplugin
`spec plugins resetRemove all user-installed and linked plugins.
`
USAGE
$ spec plugins reset [--hard] [--reinstall]FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.
`_See code: @oclif/plugin-plugins_
spec plugins uninstall [PLUGIN]Removes a plugin from the CLI.
`
USAGE
$ spec plugins uninstall [PLUGIN...] [-h] [-v]ARGUMENTS
PLUGIN... plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ spec plugins unlink
$ spec plugins remove
EXAMPLES
$ spec plugins uninstall myplugin
`_See code: @oclif/plugin-plugins_
spec plugins unlink [PLUGIN]Removes a plugin from the CLI.
`
USAGE
$ spec plugins unlink [PLUGIN...] [-h] [-v]ARGUMENTS
PLUGIN... plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ spec plugins unlink
$ spec plugins remove
EXAMPLES
$ spec plugins unlink myplugin
`spec plugins updateUpdate installed plugins.
`
USAGE
$ spec plugins update [-h] [-v]FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
`_See code: @oclif/plugin-plugins_
spec research query [QUERY]Research and gather information using AI-powered queries
`
USAGE
$ spec research query [QUERY] [-t ] [-s ] [-f markdown|json|text] [-d basic|detailed|comprehensive]ARGUMENTS
QUERY Research query or question
FLAGS
-d, --depth= [default: detailed] Research depth level
-f, --format= [default: markdown] Output format
-s, --save= Save research results to file
-t, --topic= Research topic or domain
DESCRIPTION
Research and gather information using AI-powered queries
EXAMPLES
$ spec research query "What are the best practices for React state management?"
$ spec research query --topic "microservices architecture" --save research/microservices.md
`_See code: src/commands/research/query.ts_
spec validate specValidate specification documents for completeness and consistency
`
USAGE
$ spec validate spec [-f ] [-s] [--fix] [--format text|json|markdown]FLAGS
-f, --file= Specific file to validate
-s, --strict Enable strict validation mode
--fix Automatically fix issues where possible
--format= [default: text] Output format for validation results
DESCRIPTION
Validate specification documents for completeness and consistency
EXAMPLES
$ spec validate spec
$ spec validate spec --file specs/project.md --strict
`_See code: src/commands/validate/spec.ts_
spec workspace initInitialize a new Specify workspace in the current directory
`
USAGE
$ spec workspace init [-n ] [-t web-app|mobile-app|api|cli] [-f]FLAGS
-f, --force Overwrite existing workspace configuration
-n, --name= Project name
-t, --template= Project template (web-app, mobile-app, api, cli)
DESCRIPTION
Initialize a new Specify workspace in the current directory
EXAMPLES
$ spec workspace init
$ spec workspace init --name "My Project" --template web-app
`_See code: src/commands/workspace/init.ts_
spec workspace statusShow current workspace status and configuration
`
USAGE
$ spec workspace statusDESCRIPTION
Show current workspace status and configuration
EXAMPLES
$ spec workspace status
``_See code: src/commands/workspace/status.ts_