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
$ 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
...
-
Authenticate with Specify.app
spec auth login
-
Initialize a new workspace
spec workspace init
-
Generate a Product Requirements Document
spec generate prd
-
Break down specifications into tasks
spec generate tasks
-
Validate your specifications
spec validate spec
spec auth login
spec auth logout
spec auth status
spec generate prd
spec generate tasks
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 reset
spec plugins uninstall [PLUGIN]
spec plugins unlink [PLUGIN]
spec plugins update
spec research query [QUERY]
spec validate spec
spec workspace init
spec workspace status
Authenticate with Specify.app and configure API key
USAGE
$ spec auth login [-k <value>] [-p <value>]
FLAGS
-k, --api-key=<value> API key for authentication
-p, --profile=<value> [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
Remove authentication credentials
USAGE
$ spec auth logout [-p <value>] [-a]
FLAGS
-a, --all Logout from all profiles
-p, --profile=<value> [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
Show current authentication status
USAGE
$ spec auth status [-p <value>]
FLAGS
-p, --profile=<value> [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
Generate Product Requirements Document (PRD) using AI
USAGE
$ spec generate prd [-i <value>] [-o <value>] [--interactive] [-t standard|agile|lean|enterprise]
FLAGS
-i, --input=<value> [default: specs/project.md] Input specification file
-o, --output=<value> [default: docs/prd.md] Output PRD file
-t, --template=<option> [default: standard] PRD template to use
<options: standard|agile|lean|enterprise>
--interactive Interactive mode with AI chat
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
Break down specifications into actionable tasks
USAGE
$ spec generate tasks [-i <value>] [-o <value>] [-f markdown|json|csv] [-p high|medium|low] [--estimate]
FLAGS
-f, --format=<option> [default: markdown] Output format
<options: markdown|json|csv>
-i, --input=<value> [default: docs/prd.md] Input specification or PRD file
-o, --output=<value> [default: docs/tasks.md] Output tasks file
-p, --priority=<option> Filter by priority level
<options: high|medium|low>
--estimate Include effort estimates
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
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
List 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
Installs 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
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
Installs 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
Links 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
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
Remove 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
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
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
Update 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
Research and gather information using AI-powered queries
USAGE
$ spec research query [QUERY] [-t <value>] [-s <value>] [-f markdown|json|text] [-d basic|detailed|comprehensive]
ARGUMENTS
QUERY Research query or question
FLAGS
-d, --depth=<option> [default: detailed] Research depth level
<options: basic|detailed|comprehensive>
-f, --format=<option> [default: markdown] Output format
<options: markdown|json|text>
-s, --save=<value> Save research results to file
-t, --topic=<value> 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
Validate specification documents for completeness and consistency
USAGE
$ spec validate spec [-f <value>] [-s] [--fix] [--format text|json|markdown]
FLAGS
-f, --file=<value> Specific file to validate
-s, --strict Enable strict validation mode
--fix Automatically fix issues where possible
--format=<option> [default: text] Output format for validation results
<options: text|json|markdown>
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
Initialize a new Specify workspace in the current directory
USAGE
$ spec workspace init [-n <value>] [-t web-app|mobile-app|api|cli] [-f]
FLAGS
-f, --force Overwrite existing workspace configuration
-n, --name=<value> Project name
-t, --template=<option> Project template (web-app, mobile-app, api, cli)
<options: 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
Show current workspace status and configuration
USAGE
$ spec workspace status
DESCRIPTION
Show current workspace status and configuration
EXAMPLES
$ spec workspace status
See code: src/commands/workspace/status.ts