Skip to content

dev-thug/specify-cli

Repository files navigation

specify-cli

AI-powered Specification-Driven Development (SDD) CLI for enhanced productivity

oclif Version Downloads/week

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

  1. Authenticate with Specify.app

    spec auth login
  2. Initialize a new workspace

    spec workspace init
  3. Generate a Product Requirements Document

    spec generate prd
  4. Break down specifications into tasks

    spec generate tasks
  5. Validate your specifications

    spec validate spec

Commands

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_KEY

See 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 production

See 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 production

See 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.md

See 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 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 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 plugins

See 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/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 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/someplugin

See 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 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 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 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 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.md

See 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 --strict

See 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-app

See 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 status

See code: src/commands/workspace/status.ts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published