Wave CLI commands for pipeline orchestration.
| Command | Purpose |
|---|---|
wave init |
Initialize a new project |
wave run |
Execute a pipeline |
wave do |
Run an ad-hoc task |
wave status |
Check pipeline status |
wave logs |
View execution logs |
wave cancel |
Cancel running pipeline |
wave chat |
Interactive analysis of pipeline runs |
wave artifacts |
List and export artifacts |
wave list |
List adapters, runs, pipelines, personas, contracts |
wave validate |
Validate configuration |
wave clean |
Clean up workspaces |
wave serve |
Start the web dashboard server |
wave chat |
Interactive chat session with a persona |
wave migrate |
Database migrations |
Initialize a new Wave project.
wave initOutput:
Created wave.yaml
Created .wave/personas/navigator.md
Created .wave/personas/craftsman.md
Created .wave/personas/summarizer.md
Created .wave/pipelines/default.yaml
Project initialized. Run 'wave validate' to check configuration.
wave init --adapter opencode # Use different adapter
wave init --force # Overwrite existing files
wave init --merge # Merge into existing config
wave init --reconfigure # Re-run onboarding wizard with current settings as defaults
wave init --all # Include all pipelines regardless of release status
wave init --workspace ./ws # Custom workspace directory path
wave init --output config.yaml # Custom output path for wave.yaml
wave init -y # Answer yes to all confirmation promptsExecute a pipeline. Arguments can be provided as positional args or flags.
# Positional arguments (recommended for quick usage)
wave run gh-pr-review "Review auth module"
# Flag-based (explicit)
wave run --pipeline gh-pr-review --input "Review auth module"
# Mixed
wave run gh-pr-review --input "Review auth module"Output:
[run-abc123] Starting pipeline: gh-pr-review
[run-abc123] Step: analyze (navigator) - started
[run-abc123] Step: analyze (navigator) - completed (45s)
[run-abc123] Step: review (auditor) - started
[run-abc123] Step: review (auditor) - completed (1m12s)
[run-abc123] Pipeline completed in 1m57s
wave run hotfix --dry-run # Preview without executing
wave run speckit-flow --from-step implement # Start from step (auto-recovers input)
wave run speckit-flow --from-step implement --force # Skip validation for --from-step
wave run recinq --from-step report --run recinq-20260219-fa19 # Recover input from specific run
wave run migrate --timeout 60 # Custom timeout (minutes)
wave run test --mock # Use mock adapter for testing
wave run build -o json # NDJSON output to stdout (pipe-friendly)
wave run deploy -o text # Plain text progress to stderr
wave run review -o text -v # Plain text with real-time tool activity
wave run check -o quiet # Only final result to stderrRun an ad-hoc task without a pipeline file.
wave do "fix the typo in README.md"Output:
[run-xyz789] Generated 2-step pipeline: navigate -> execute
[run-xyz789] Step: navigate (navigator) - started
[run-xyz789] Step: navigate (navigator) - completed (23s)
[run-xyz789] Step: execute (craftsman) - started
[run-xyz789] Step: execute (craftsman) - completed (1m05s)
[run-xyz789] Task completed in 1m28s
wave do "audit auth" --persona auditor # Use specific persona
wave do "test" --dry-run # Preview only
wave do "deploy" --mock # Use mock adapter for testingGenerate and execute a custom multi-step pipeline dynamically using the philosopher persona.
wave meta "implement user authentication"Output:
Invoking philosopher to generate pipeline...
This may take a moment while the AI designs your pipeline.
Generated pipeline: implement-auth
Steps:
1. navigate [navigator]
2. specify [philosopher]
3. implement [craftsman]
4. review [auditor]
Meta pipeline completed (3m28s)
Total steps: 4, Total tokens: 45k
wave meta "build API" --save api-pipeline.yaml # Save generated pipeline
wave meta "refactor code" --dry-run # Preview without executing
wave meta "add tests" --mock # Use mock adapter for testingCheck pipeline run status.
wave statusOutput:
RUN_ID PIPELINE STATUS STEP ELAPSED TOKENS
run-abc123 gh-pr-review running review 2m15s 12k
run-xyz789 hotfix completed - 5m23s 28k
wave status run-abc123Output:
Run ID: run-abc123
Pipeline: gh-pr-review
Status: running
Step: review
Started: 2026-02-03 14:30:22
Elapsed: 2m15s
Input: Review auth module
Steps:
analyze completed 45s
review running 1m30s
wave status --all # Show all recent runs
wave status --format json # JSON output for scriptingView execution logs.
wave logs run-abc123Output:
[14:30:22] started analyze (navigator) Starting analysis
[14:31:07] completed analyze (navigator) 45.0s 2.1k tokens Found 5 relevant files
[14:31:08] started review (auditor) Beginning review
[14:32:20] completed review (auditor) 72.0s 1.5k tokens Checking security patterns
wave logs --step analyze # Filter by step
wave logs --errors # Show only errors
wave logs --tail 20 # Last 20 entries
wave logs --follow # Stream in real-time
wave logs --since 10m # Last 10 minutes
wave logs --level error # Log level filter (all, info, error)
wave logs --format json # Output as JSON for scriptingCancel a running pipeline.
wave cancel run-abc123Output:
Cancellation requested for run-abc123 (gh-pr-review)
Pipeline will stop after current step completes.
wave cancel run-abc123 --force
wave cancel run-abc123 -f # Short flag for --forceOutput:
Force cancellation sent to run-abc123 (gh-pr-review)
Process terminated.
wave cancel --format json # Output cancellation result as JSON
wave cancel -f --format text # Force cancel with text output (default)List and export artifacts.
wave artifacts run-abc123Output:
STEP ARTIFACT TYPE SIZE PATH
analyze analysis.json json 2.1 KB .wave/workspaces/.../analysis.json
review findings.md md 4.5 KB .wave/workspaces/.../findings.md
wave artifacts run-abc123 --export ./outputOutput:
Exported 2 artifacts to ./output/
./output/analyze/analysis.json
./output/review/findings.md
wave artifacts --step analyze # Filter by step
wave artifacts --format json # JSON outputList Wave configuration, resources, and execution history.
wave list # Show all categories
wave list adapters # List configured adapters
wave list runs # List recent pipeline runs
wave list pipelines # List available pipelines
wave list personas # List configured personas
wave list contracts # List contract schemaswave list adaptersOutput:
Adapters
────────────────────────────────────────────────────────────
✓ claude
binary: claude • mode: headless • format: json
wave list runsOutput:
Recent Pipeline Runs
────────────────────────────────────────────────────────────────────────────────
RUN_ID PIPELINE STATUS STARTED DURATION
run-abc123 gh-pr-review completed 2026-02-03 14:30 5m23s
run-xyz789 hotfix failed 2026-02-03 09:30 2m15s
wave list pipelinesOutput:
Pipelines
────────────────────────────────────────────────────────────
gh-pr-review [4 steps]
Automated code review workflow
○ analyze → review → report → notify
speckit-flow [5 steps]
Feature development pipeline
○ navigate → specify → plan → implement → validate
wave list personasOutput:
Personas
────────────────────────────────────────────────────────────
navigator
adapter: claude • temp: 0.1 • allow:3
Read-only codebase exploration
craftsman
adapter: claude • temp: 0.7 • allow:5
Implementation and testing
wave list contractsOutput:
Contracts
────────────────────────────────────────────────────────────
navigation [json-schema]
used by:
• speckit-flow → navigate (navigator)
specification [json-schema]
used by:
• speckit-flow → specify (philosopher)
validation-report [json-schema]
(unused)
wave list runs --run-status failed # Filter by status
wave list runs --limit 20 # Show more runs
wave list runs --run-pipeline hotfix # Filter by pipeline
wave list --format json # JSON outputValidate configuration.
wave validateOutput (success):
Validating wave.yaml...
Adapters: 1 defined
Personas: 5 defined
Pipelines: 3 discovered
All validation checks passed.
Output (errors):
Validating wave.yaml...
ERROR: Persona 'craftsman' references undefined adapter 'opencode'
ERROR: System prompt file not found: .wave/personas/missing.md
Validation failed with 2 errors.
wave validate -v # Show all checks (global --verbose flag)
wave validate --pipeline hotfix.yaml # Validate specific pipelineClean up workspaces.
wave clean --dry-runOutput:
Would delete:
.wave/workspaces/run-abc123/ (gh-pr-review, 145 MB)
.wave/workspaces/run-xyz789/ (hotfix, 23 MB)
Total: 168 MB across 2 runs
Run without --dry-run to delete.
wave clean --all # Clean all workspaces
wave clean --older-than 7d # Clean runs older than 7 days
wave clean --status completed # Clean only completed runs
wave clean --keep-last 5 # Keep 5 most recent
wave clean --force # Skip confirmation
wave clean --dry-run # Preview what would be deleted
wave clean --quiet # Suppress output for scriptingStart the web dashboard server. Provides real-time pipeline monitoring, execution control, DAG visualization, and artifact browsing through a web interface.
Note:
wave serverequires thewebuibuild tag. Install withgo install -tags webuior use a release binary that includes the web UI.
wave serveOutput:
Starting Wave dashboard on http://127.0.0.1:8080
| Flag | Default | Description |
|---|---|---|
--port |
8080 |
Port to listen on |
--bind |
127.0.0.1 |
Address to bind to |
--token |
"" |
Authentication token (required for non-localhost binding) |
--db |
.wave/state.db |
Path to state database |
--manifest |
wave.yaml |
Path to manifest file |
When binding to a non-localhost address (--bind 0.0.0.0), authentication is required. The token can be provided via:
--tokenflagWAVE_SERVE_TOKENenvironment variable- Auto-generated (printed to stderr on startup)
# Local development (no auth required)
wave serve
# Custom port
wave serve --port 9090
# Expose on all interfaces with explicit token
wave serve --bind 0.0.0.0 --token mysecret
# Use custom database path
wave serve --db .wave/state.dbInteractive analysis and exploration of pipeline runs. Opens a conversational session where you can investigate step outputs, artifacts, and execution details.
wave chat run-abc123| Flag | Default | Description |
|---|---|---|
--step |
"" |
Focus context on a specific step |
--model |
sonnet |
Model to use for the chat session |
--list |
false |
List recent runs |
--continue |
"" |
Continue work in a step's workspace (read-write) |
--rewrite |
"" |
Re-execute a step with modified prompt |
--extend |
"" |
Add supplementary instructions to a step |
# List recent runs
wave chat --list
# Chat about a specific step
wave chat run-abc123 --step implement
# Continue working in a step's workspace
wave chat run-abc123 --continue implement
# Re-execute a step with a new prompt
wave chat run-abc123 --rewrite implement
# Add supplementary instructions to a step
wave chat run-abc123 --extend implementDatabase migration commands.
wave migrate statusOutput:
Current version: 3
Available migrations: 5
Pending: 2
v1 core_tables applied 2026-01-15 10:00:00
v2 add_artifacts applied 2026-01-20 14:30:00
v3 add_metrics applied 2026-02-01 09:00:00
v4 add_checkpoints pending
v5 add_relay pending
wave migrate upOutput:
Applying migration v4: add_checkpoints... done
Applying migration v5: add_relay... done
Migrations complete. Current version: 5
wave migrate down 3Output:
Rolling back to version 3...
Reverting v5: add_relay... done
Reverting v4: add_checkpoints... done
Rollback complete. Current version: 3
All commands support:
| Flag | Short | Description |
|---|---|---|
--help |
-h |
Show help |
--version |
Show version | |
--manifest |
-m |
Path to manifest file (default: wave.yaml) |
--debug |
-d |
Enable debug mode |
--output |
-o |
Output format: auto, json, text, quiet (default: auto) |
--verbose |
-v |
Include real-time tool activity |
--no-tui |
Disable TUI and use text output |
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error (includes pipeline failures, timeouts, validation errors) |
| 2 | Usage error (invalid arguments or configuration) |
- Quick Start - Run your first pipeline
- Pipelines - Define multi-step workflows
- Manifest Reference - Configuration options