specify-cli
v0.1.0
Published
AI-powered Specification-Driven Development (SDD) CLI for enhanced productivity
Readme
specify-cli
AI-powered Specification-Driven Development (SDD) CLI for enhanced productivity
What is Specify CLI?
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
Key Features
- 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
Usage
$ 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
Authenticate with Specify.app
spec auth loginInitialize a new workspace
spec workspace initGenerate a Product Requirements Document
spec generate prdBreak down specifications into tasks
spec generate tasksValidate your specifications
spec validate spec
Commands
spec auth loginspec auth logoutspec auth statusspec generate prdspec generate tasksspec help [COMMAND]spec pluginsspec plugins add PLUGINspec plugins:inspect PLUGIN...spec plugins install PLUGINspec plugins link PATHspec plugins remove [PLUGIN]spec plugins resetspec plugins uninstall [PLUGIN]spec plugins unlink [PLUGIN]spec plugins updatespec research query [QUERY]spec validate specspec workspace initspec workspace status
spec auth login
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_KEYSee code: src/commands/auth/login.ts
spec auth logout
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 productionSee code: src/commands/auth/logout.ts
spec auth status
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 productionSee code: src/commands/auth/status.ts
spec generate prd
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.mdSee code: src/commands/generate/prd.ts
spec generate tasks
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 jsonSee 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 plugins
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 pluginsSee code: @oclif/plugin-plugins
spec plugins add PLUGIN
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/somepluginspec 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 mypluginSee code: @oclif/plugin-plugins
spec plugins install PLUGIN
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/somepluginSee code: @oclif/plugin-plugins
spec plugins link PATH
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 mypluginSee 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 mypluginspec plugins reset
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
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 mypluginSee 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 mypluginspec plugins update
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
spec research query [QUERY]
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.mdSee code: src/commands/research/query.ts
spec validate spec
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 --strictSee code: src/commands/validate/spec.ts
spec workspace init
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-appSee code: src/commands/workspace/init.ts
spec workspace status
Show current workspace status and configuration
USAGE
$ spec workspace status
DESCRIPTION
Show current workspace status and configuration
EXAMPLES
$ spec workspace statusSee code: src/commands/workspace/status.ts
