Skip to main content

CLI Command Reference

A detailed reference of all available Artisan commands and options in Laravel Spectrum.

📋 Command List

CommandDescription
spectrum:generateGenerate OpenAPI documentation
spectrum:generate:optimizedOptimized generation (for large projects)
spectrum:watchReal-time preview mode
spectrum:mockLaunch mock API server
spectrum:export:postmanExport to Postman collection
spectrum:export:insomniaExport to Insomnia workspace
spectrum:cacheManage cache (clear, stats, warm)

🔧 spectrum:generate

The basic command to generate API documentation.

Usage

php artisan spectrum:generate [options]

Options

OptionShortDefaultDescription
--output-ostorage/app/spectrum/openapi.jsonOutput file path
--format-fjsonOutput format (json/yaml)
--patternconfig valueRoute patterns to include
--excludeconfig valueRoute patterns to exclude
--no-cachefalseDon't use cache
--forcefalseOverwrite existing files
--dry-runfalseRun without generating files
--incremental-ifalseProcess only changed files

Examples

# Basic generation
php artisan spectrum:generate

# Generate only specific patterns
php artisan spectrum:generate --pattern="api/v2/*"

# Multiple patterns
php artisan spectrum:generate --pattern="api/users/*" --pattern="api/posts/*"

# Exclude patterns
php artisan spectrum:generate --exclude="api/admin/*" --exclude="api/debug/*"

# Output in YAML format
php artisan spectrum:generate --format=yaml --output=docs/api.yaml

# Force regeneration without cache
php artisan spectrum:generate --no-cache --force

# Dry run (doesn't actually generate)
php artisan spectrum:generate --dry-run -vvv

⚡ spectrum:generate:optimized

Optimized generation command for large projects.

Usage

php artisan spectrum:generate:optimized [options]

Options

OptionDefaultDescription
--workersautoNumber of parallel workers (auto for CPU cores)
--chunk-size100Number of routes processed by each worker
--memory-limit512MMemory limit for each worker
--incrementalfalseProcess only changed files
--progresstrueShow progress bar
--statstrueShow performance statistics

Examples

# Generate with automatic optimization
php artisan spectrum:generate:optimized

# Parallel processing with 8 workers
php artisan spectrum:generate:optimized --workers=8

# Adjust memory and chunk size
php artisan spectrum:generate:optimized --memory-limit=1G --chunk-size=50

# Incremental generation
php artisan spectrum:generate:optimized --incremental

# Run quietly without statistics
php artisan spectrum:generate:optimized --no-stats --no-progress

👁️ spectrum:watch

Watch file changes and update documentation in real-time.

Usage

php artisan spectrum:watch [options]

Options

OptionDefaultDescription
--port8080Preview server port
--hostlocalhostPreview server host
--no-openfalseDon't open browser automatically
--pollfalseUse polling mode
--interval1000Polling interval (milliseconds)

Examples

# Basic usage
php artisan spectrum:watch

# Launch on custom port
php artisan spectrum:watch --port=3000

# Launch without opening browser
php artisan spectrum:watch --no-open

# Make externally accessible
php artisan spectrum:watch --host=0.0.0.0

# Polling mode (Docker environments, etc.)
php artisan spectrum:watch --poll --interval=2000

🎭 spectrum:mock

Launch a mock API server based on OpenAPI documentation.

Usage

php artisan spectrum:mock [options]

Options

OptionDefaultDescription
--host127.0.0.1Host address to bind
--port8081Port number to listen on
--specstorage/app/spectrum/openapi.jsonPath to OpenAPI specification file
--delaynoneResponse delay (milliseconds)
--scenariosuccessDefault response scenario

Examples

# Basic launch
php artisan spectrum:mock

# Custom port and host
php artisan spectrum:mock --host=0.0.0.0 --port=3000

# Add response delay
php artisan spectrum:mock --delay=500

# Set error scenario as default
php artisan spectrum:mock --scenario=error

# Custom OpenAPI file
php artisan spectrum:mock --spec=docs/custom-api.json

📤 spectrum:export:postman

Export API documentation as a Postman collection.

Usage

php artisan spectrum:export:postman [options]

Options

OptionDefaultDescription
--outputstorage/app/spectrum/postman/collection.jsonOutput file path
--include-examplestrueInclude request/response examples
--include-testsfalseGenerate test scripts
--environmentfalseAlso generate environment variables file
--base-urlAPP_URLBase URL

Examples

# Basic export
php artisan spectrum:export:postman

# Export with test scripts
php artisan spectrum:export:postman --include-tests

# Also generate environment variables file
php artisan spectrum:export:postman --environment

# Custom output location
php artisan spectrum:export:postman --output=postman/my-api.json

# Complete export
php artisan spectrum:export:postman \
--include-tests \
--environment \
--base-url=https://api.example.com

🦊 spectrum:export:insomnia

Export API documentation as an Insomnia workspace.

Usage

php artisan spectrum:export:insomnia [options]

Options

OptionDefaultDescription
--outputstorage/app/spectrum/insomnia/workspace.jsonOutput file path
--workspace-nameAPP_NAME APIWorkspace name
--include-environmentstrueInclude environment settings
--folder-structuretrueOrganize with folder structure

Examples

# Basic export
php artisan spectrum:export:insomnia

# Custom workspace name
php artisan spectrum:export:insomnia --workspace-name="My Cool API"

# Flat structure without folders
php artisan spectrum:export:insomnia --no-folder-structure

# Custom output location
php artisan spectrum:export:insomnia --output=insomnia/api.json

🗑️ spectrum:cache

Manage Laravel Spectrum cache (clear, show statistics, or warm up).

Usage

php artisan spectrum:cache {action}

Actions

ActionDescription
clearClear all cached documentation
statsShow cache statistics (size, files, etc.)
warmClear and regenerate cache

Examples

# Clear all cache
php artisan spectrum:cache clear

# Show cache statistics
php artisan spectrum:cache stats

# Warm up cache (clear and regenerate)
php artisan spectrum:cache warm

🔍 Global Options

Laravel global options available for all commands:

OptionShortDescription
--help-hShow help
--quiet-qSuppress output
--verbose-v/-vv/-vvvIncrease verbosity
--version-VDisplay version
--ansiForce ANSI output
--no-ansiDisable ANSI output
--no-interaction-nDon't ask interactive questions
--envSpecify environment

💡 Useful Tips

Setting Aliases

# Add to ~/.bashrc or ~/.zshrc
alias specgen="php artisan spectrum:generate"
alias specwatch="php artisan spectrum:watch"
alias specmock="php artisan spectrum:mock"

Using Makefile

# Makefile
.PHONY: docs docs-watch docs-mock

docs:
php artisan spectrum:generate

docs-watch:
php artisan spectrum:watch

docs-mock:
php artisan spectrum:mock

docs-export:
php artisan spectrum:export:postman --environment
php artisan spectrum:export:insomnia

Integration with npm scripts

{
"scripts": {
"api:docs": "php artisan spectrum:generate",
"api:watch": "php artisan spectrum:watch",
"api:mock": "php artisan spectrum:mock",
"dev": "concurrently \"npm run api:mock\" \"npm run serve\""
}
}