openspec list
Displays a table of active changes with task progress, or specifications with requirement counts.
openspec list [options]Options
Section titled “Options”| Option | Description |
|---|---|
--specs | List specifications instead of changes |
--changes | List changes (default) |
--json | Machine-readable output |
Output
Section titled “Output”Changes (default)
Section titled “Changes (default)”$ openspec list
┌─────────────────────┬──────────────┐│ Change │ Progress │├─────────────────────┼──────────────┤│ add-user-auth │ 3/5 tasks ││ update-api-schema │ ✓ Complete ││ fix-validation │ 0/3 tasks │└─────────────────────┴──────────────┘Specifications
Section titled “Specifications”$ openspec list --specs
┌─────────────────────┬──────────────────┐│ Spec │ Requirements │├─────────────────────┼──────────────────┤│ cli-init │ 12 requirements ││ cli-list │ 6 requirements ││ user-auth │ 8 requirements │└─────────────────────┴──────────────────┘JSON Output
Section titled “JSON Output”$ openspec list --json
{ "changes": [ { "name": "add-user-auth", "tasksCompleted": 3, "tasksTotal": 5 } ]}Examples
Section titled “Examples”Check what’s in progress
Section titled “Check what’s in progress”openspec listSee all capabilities
Section titled “See all capabilities”openspec list --specsScript integration
Section titled “Script integration”openspec list --json | jq '.changes[] | select(.tasksCompleted == .tasksTotal)'Behavior
Section titled “Behavior”- Scans
openspec/changes/for change directories - Excludes
archive/subdirectory - Parses
tasks.mdfor completion status - Sorts alphabetically by name
Empty States
Section titled “Empty States”$ openspec listNo active changes found.
$ openspec list --specsNo specs found.Exit Codes
Section titled “Exit Codes”| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | No OpenSpec directory found |