CLI Command Reference
This reference lists the user-facing spec-kitty CLI commands and their flags exactly as surfaced by --help. For agent-only commands, see docs/reference/agent-subcommands.md.
Terminology note:
Mission Type= reusable workflow blueprintMission= tracked item underkitty-specs/<mission-slug>/Mission Run= runtime/session instance- As of 3.1.0,
--missionis the canonical flag name for specifying the mission slug.--featureremains only as a hidden deprecated alias during the migration window. mission-state/accept-mission/merge-missionare the canonical orchestrator-api command names
spec-kitty
Synopsis: spec-kitty [OPTIONS] COMMAND [ARGS]...
Description: Spec Kitty CLI entry point.
Options:
| Flag | Description |
|---|---|
--version, -v |
Show version and exit |
--help |
Show this message and exit |
Commands:
init- Initialize a new Spec Kitty project from templatesaccept- Validate mission readiness before merging to mainconfig- Display project configuration and asset resolution informationdashboard- Open or stop the Spec Kitty dashboardimplement- Create workspace for work package implementationspecify- Create a mission scaffold in kitty-specs/plan- Scaffold plan.md for a missiontasks- Finalize tasks metadata after task generationmerge- Merge a completed mission branch into the target branch and clean up resourcesmigrate- Migrate project .kittify/ to centralized modelnext- Decide and emit the next agent action for the current missionresearch- Execute Phase 0 research workflow to scaffold artifactsupgrade- Upgrade a Spec Kitty project to the current versionlist-legacy-features- List legacy worktrees blocking 0.11.0 upgradevalidate-encoding- Validate and optionally fix file encoding in mission artifactsvalidate-tasks- Validate and optionally fix task metadata inconsistenciesverify-setup- Verify that the current environment matches Spec Kitty expectationsagent- Commands for AI agents to execute spec-kitty workflows programmaticallyauth- Authentication commandscharter- Charter management commandscontext- Query workspace context informationdoctor- Project health diagnosticsglossary- Glossary management commandsmission- View available Spec Kitty missionsops- Operation history (git reflog)orchestrator-api- Machine-contract API for external orchestrators (JSON envelope interface)repair- Repair broken templatessync- Synchronization commandsissue-search- Search tracker issues via the hosted read pathtracker- Task tracker commands
spec-kitty issue-search
Synopsis: spec-kitty issue-search [OPTIONS]
Description: Search tracker issues via the hosted read path.
Options:
| Flag | Description |
|---|---|
--provider TEXT |
Tracker provider slug [required] |
--query TEXT |
Issue identifier or search text [required] |
--json |
Render tickets as a JSON array |
--help |
Show this message and exit |
spec-kitty init
Synopsis: spec-kitty init [OPTIONS] [PROJECT_NAME]
Description: Initialize a new Spec Kitty project from templates.
Arguments:
PROJECT_NAME: Name for your new project directory (use.for current directory)
Options:
| Flag | Description |
|---|---|
--ai TEXT |
Comma-separated AI assistants (claude,codex,gemini,...) |
--non-interactive / --yes |
Disable prompts (CI/CD) |
--help |
Show this message and exit |
Examples:
spec-kitty init my-project
spec-kitty init my-project --ai codex
spec-kitty init my-project --ai codex,claude
spec-kitty init . --ai codex
spec-kitty init my-project --ai codex --non-interactive
See Also: docs/how-to/non-interactive-init.md
spec-kitty upgrade
Synopsis: spec-kitty upgrade [OPTIONS]
Description: Upgrade a Spec Kitty project to the current version.
Options:
| Flag | Description |
|---|---|
--dry-run |
Preview changes without applying |
--force |
Skip confirmation prompts |
--target TEXT |
Target version (defaults to current CLI version) |
--json |
Output results as JSON |
--verbose, -v |
Show detailed migration information |
--no-worktrees |
Skip upgrading worktrees |
--help |
Show this message and exit |
Examples:
spec-kitty upgrade
spec-kitty upgrade --dry-run
spec-kitty upgrade --target 0.6.5
spec-kitty implement
Synopsis: spec-kitty implement [OPTIONS] WP_ID
Description: Create workspace for work package implementation (git worktree).
Arguments:
WP_ID: Work package ID (e.g.,WP01) [required]
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug (canonical flag; e.g., 001-my-feature) |
--recover |
Restore execution context for a WP stuck in in_progress after a crash |
--base TEXT |
Override base ref for the worktree (advanced; normally auto-detected) |
--auto-commit, --no-auto-commit |
Auto-commit lane change (default: from project config) |
--json |
Output in JSON format |
--help |
Show this message and exit |
Examples:
spec-kitty implement WP01
spec-kitty implement WP02
spec-kitty implement WP01 --mission 001-my-feature
spec-kitty implement WP01 --recover
spec-kitty implement WP01 --json
spec-kitty accept
Synopsis: spec-kitty accept [OPTIONS]
Description: Validate mission readiness before merging to main.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug to accept |
--mode TEXT |
Acceptance mode: auto, pr, local, or checklist (default: auto) |
--actor TEXT |
Name to record as the acceptance actor |
--test TEXT |
Validation command executed (repeatable) |
--json |
Emit JSON instead of formatted text |
--lenient |
Skip strict metadata validation |
--no-commit |
Skip auto-commit; report only |
--allow-fail |
Return checklist even when issues remain |
--help |
Show this message and exit |
spec-kitty merge
Synopsis: spec-kitty merge [OPTIONS]
Description: Merge lane branches into the mission branch, merge the mission branch into the target branch, and clean up execution worktrees. Use --resume to continue an interrupted merge from saved state. Use --abort to clear merge state and abort any in-progress git merge.
Options:
| Flag | Description |
|---|---|
--strategy TEXT |
Merge strategy: MERGE (merge commit), SQUASH (squash to single commit), or REBASE (linear history). Default: SQUASH. Case-insensitive. |
--mission TEXT |
Mission slug when merging from main branch (canonical flag) |
--delete-branch, --keep-branch |
Delete or keep feature branch after merge (default: delete) |
--remove-worktree, --keep-worktree |
Remove or keep resolved execution worktrees after merge (default: remove) |
--push |
Push to origin after merge |
--target TEXT |
Target branch to merge into (auto-detected) |
--dry-run |
Show what would be done without executing |
--json |
Output deterministic JSON (dry-run mode) |
--resume |
Resume an interrupted merge from saved state in .kittify/merge-state.json |
--abort |
Abort and clear merge state |
--help |
Show this message and exit |
Strategy notes:
MERGE— creates a merge commit; preserves full history.SQUASH— collapses all lane commits into a single commit on the target branch.REBASE— replays lane commits on top of the target branch for a linear history; may be rejected by repos with linear-history branch protection if commits already exist on a remote.
Resume / abort:
spec-kitty merge --resume # continue from .kittify/merge-state.json
spec-kitty merge --abort # clear saved state and abort any in-progress git merge
spec-kitty dashboard
Synopsis: spec-kitty dashboard [OPTIONS]
Description: Open or stop the Spec Kitty dashboard.
Options:
| Flag | Description |
|---|---|
--port INTEGER |
Preferred port for the dashboard (falls back to first available port) |
--kill |
Stop the running dashboard for this project and clear its metadata |
--open |
Open dashboard URL in your default browser (disabled by default) |
--help |
Show this message and exit |
spec-kitty research
Synopsis: spec-kitty research [OPTIONS]
Description: Execute Phase 0 research workflow to scaffold artifacts.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug to target |
--force |
Overwrite existing research artifacts |
--help |
Show this message and exit |
spec-kitty orchestrator-api
Synopsis: spec-kitty orchestrator-api [OPTIONS] COMMAND [ARGS]...
Description: Machine-contract API for external orchestrators. Every command emits exactly one JSON envelope and exits non-zero on failure.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
contract-version- Return host contract version and provider compatibility minimummission-state- Return full mission/WP state snapshotlist-ready- ReturnplannedWPs whose dependencies aredonestart-implementation- Composite claim/start transition for a WPstart-review- Move rejected WP fromfor_reviewback toin_progresstransition- Apply explicit lane transition with state-machine validationappend-history- Append activity history to a WP promptaccept-mission- Accept a mission when all WPs aredonemerge-mission- Run preflight and land the mission into the target branch
See Also: Orchestrator API Reference
spec-kitty sync
Synopsis: spec-kitty sync [OPTIONS] COMMAND [ARGS]...
Description: Synchronization commands. This is a command group with subcommands for workspace sync, event queue sync, and sync health diagnostics.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
workspace- Synchronize workspace with upstream changesserver- Show or set sync server URLnow- Trigger immediate sync of all queued eventsstatus- Show sync queue status, connection state, and auth infodiagnose- Validate queued events locally against the event schemadoctor- Diagnose sync health: queue, auth, and server connectivity
spec-kitty sync workspace
Synopsis: spec-kitty sync workspace [OPTIONS]
Description: Synchronize workspace with upstream changes. Updates the current workspace with changes from its base branch or parent using git rebase <base-branch>. Sync may fail on conflicts; you must resolve conflicts before continuing.
Options:
| Flag | Description |
|---|---|
--repair, -r |
Attempt workspace recovery (may lose uncommitted work) |
--verbose, -v |
Show detailed sync output |
--help |
Show this message and exit |
Examples:
spec-kitty sync workspace
spec-kitty sync workspace --verbose
spec-kitty sync workspace --repair
spec-kitty sync server
Synopsis: spec-kitty sync server [OPTIONS] [URL]
Description: Show or set sync server URL.
Arguments:
URL: Sync server URL to set (must behttps://...) [optional]
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Examples:
spec-kitty sync server
spec-kitty sync server https://spec-kitty-dev.fly.dev
spec-kitty sync now
Synopsis: spec-kitty sync now [OPTIONS]
Description: Trigger immediate sync of all queued events. Drains the offline queue completely, uploading events to the server in batches of 1000 until the queue is empty or all remaining events have exceeded their retry limit.
Options:
| Flag | Description |
|---|---|
--report PATH |
Export per-event failure details to a JSON file |
--strict, --no-strict |
Exit non-zero on sync errors (default: strict) |
--help |
Show this message and exit |
Examples:
spec-kitty sync now
spec-kitty sync now --report failures.json
spec-kitty sync now --no-strict
spec-kitty sync status
Synopsis: spec-kitty sync status [OPTIONS]
Description: Show sync queue status, connection state, and auth info. Displays offline queue size, connection/emitter status, last sync timestamp, auth status, and server URL configuration.
Options:
| Flag | Description |
|---|---|
--check, -c |
Test connection to server (may be slow if server is unreachable) |
--help |
Show this message and exit |
Examples:
spec-kitty sync status
spec-kitty sync status --check
spec-kitty sync diagnose
Synopsis: spec-kitty sync diagnose [OPTIONS]
Description: Validate queued events locally against the event schema. Reads all pending events from the offline queue and validates each one against the Pydantic Event model and per-event-type payload rules. Valid events are reported as passing; malformed events show specific field errors grouped by error category.
Options:
| Flag | Description |
|---|---|
--json |
Output results as JSON instead of Rich table |
--help |
Show this message and exit |
Examples:
spec-kitty sync diagnose
spec-kitty sync diagnose --json
spec-kitty sync doctor
Synopsis: spec-kitty sync doctor [OPTIONS]
Description: Diagnose sync health: queue, auth, and server connectivity. Runs a comprehensive check of offline queue state, authentication validity, and server reachability, printing actionable remediation steps for any issues found.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Examples:
spec-kitty sync doctor
See Also: Sync Workspaces
spec-kitty ops
Synopsis: spec-kitty ops COMMAND [ARGS]...
Description: Operation history (git reflog).
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
log- Show operation historyundo- Undo is not supported for git
spec-kitty ops log
Synopsis: spec-kitty ops log [OPTIONS]
Description: Show git reflog entries. Displays recent git operations that have modified the repository state.
Options:
| Flag | Description |
|---|---|
--limit, -n INTEGER |
Number of operations to show (default: 20) |
--verbose, -v |
Show full operation IDs and details |
--help |
Show this message and exit |
Examples:
spec-kitty ops log
spec-kitty ops log -n 50
spec-kitty ops log --verbose
spec-kitty ops undo
Synopsis: spec-kitty ops undo [OPTIONS]
Description: Undo is not supported for git. Git does not have reversible operation history. Consider using these alternatives manually: git reset --soft HEAD~1 (undo last commit, keep changes), git reset --hard HEAD~1 (undo last commit, discard changes), git revert <commit> (create reverting commit), or git reflog (find previous states).
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty mission
Synopsis: spec-kitty mission [OPTIONS] COMMAND [ARGS]...
Description: View available Spec Kitty missions. Mission types are selected per mission during /spec-kitty.specify.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty mission list
Synopsis: spec-kitty mission list [OPTIONS]
Description: List all available missions with their source (project/built-in).
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty mission current
Synopsis: spec-kitty mission current [OPTIONS]
Description: Show currently active mission.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty mission info
Synopsis: spec-kitty mission info [OPTIONS] MISSION_NAME
Description: Show details for a specific mission without switching.
Arguments:
MISSION_NAME: Mission name to display details for [required]
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty mission switch
Synopsis: spec-kitty mission switch [OPTIONS] MISSION_NAME
Description: (deprecated) Switch active mission - removed in v0.8.0.
Arguments:
MISSION_NAME: Mission name (no longer supported) [required]
Options:
| Flag | Description |
|---|---|
--force |
(ignored) |
--help |
Show this message and exit |
spec-kitty validate-encoding
Synopsis: spec-kitty validate-encoding [OPTIONS]
Description: Validate and optionally fix file encoding in mission artifacts.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug to validate |
--fix |
Automatically fix encoding errors by sanitizing files |
--all |
Check all features, not just one |
--backup, --no-backup |
Create .bak files before fixing (default: backup) |
--help |
Show this message and exit |
spec-kitty validate-tasks
Synopsis: spec-kitty validate-tasks [OPTIONS]
Description: Validate and optionally fix task metadata inconsistencies.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug to validate |
--fix |
Automatically repair metadata inconsistencies |
--all |
Check all features, not just one |
--agent TEXT |
Agent name for activity log |
--shell-pid TEXT |
Shell PID for activity log |
--help |
Show this message and exit |
spec-kitty verify-setup
Synopsis: spec-kitty verify-setup [OPTIONS]
Description: Verify that the current environment matches Spec Kitty expectations.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug to verify |
--json |
Output in JSON format for AI agents |
--check-files |
Check mission file integrity (default: True) |
--check-tools |
Check for installed development tools (default: True) |
--diagnostics |
Show detailed diagnostics with dashboard health |
--help |
Show this message and exit |
spec-kitty list-legacy-features
Synopsis: spec-kitty list-legacy-features [OPTIONS]
Description: List legacy worktrees blocking 0.11.0 upgrade.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty repair
Synopsis: spec-kitty repair [OPTIONS] COMMAND [ARGS]...
Description: Repair broken templates.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
repair- Repair broken templates caused by v0.10.0-0.10.8 bundling bugworktree- Diagnose worktree kitty-specs/ status
spec-kitty repair repair
Synopsis: spec-kitty repair repair [OPTIONS]
Description: Repair broken templates caused by v0.10.0-0.10.8 bundling bug.
Options:
| Flag | Description |
|---|---|
--project-path PATH, -p |
Path to project to repair |
--dry-run |
Show what would be changed without making changes |
--help |
Show this message and exit |
spec-kitty repair worktree
Synopsis: spec-kitty repair worktree [OPTIONS] [WORKTREE_PATH]
Description: Diagnose worktree kitty-specs/ status. Checks if worktrees have kitty-specs/ directories and explains how WP operations work: WP lane changes (move-task) always use the repository root checkout's kitty-specs/, research artifacts can be added to a worktree's kitty-specs/, and stale WP files in worktrees do not affect lane operations.
Arguments:
WORKTREE_PATH: Specific worktree path to check (defaults to current directory if in a worktree) [optional]
Options:
| Flag | Description |
|---|---|
--all |
Check all worktrees in .worktrees/ directory |
--help |
Show this message and exit |
Examples:
spec-kitty repair worktree
spec-kitty repair worktree --all
spec-kitty agent
Synopsis: spec-kitty agent [OPTIONS] COMMAND [ARGS]...
Description: Commands for AI agents to execute spec-kitty workflows programmatically.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
See Also: docs/reference/agent-subcommands.md
spec-kitty agent config
Manage project AI agent configuration (add, remove, list agents).
Usage:
spec-kitty agent config [OPTIONS] COMMAND [ARGS]...
Description: The config subcommand provides tools for managing which AI agents are active in your project. Agent configuration is stored in .kittify/config.yaml; slash-command agents use user-global command roots, while Codex and Vibe use project-local command skills under .agents/skills/.
Subcommands:
| Command | Description |
|---|---|
list |
List configured agents and their status |
add |
Add agents to the project |
remove |
Remove agents from the project |
status |
Show which agents are configured vs present on filesystem |
sync |
Sync filesystem with config.yaml |
set |
Set a project-level agent configuration value |
See also: Managing AI Agents for task-oriented guidance on agent management workflows.
Note: Starting in 0.12.0, agent configuration is config-driven.
.kittify/config.yamlis the single source of truth, and migrations respect your configuration choices. See Upgrading to 0.12.0 for migration details.
spec-kitty agent config list
View configured agents and available options.
Synopsis:
spec-kitty agent config list
Description:
Lists agents currently configured in your project (from .kittify/config.yaml) with status indicators, and shows available agents that can be added.
Arguments: None
Options: None
Output:
Two sections:
- Configured agents: Agents in
config.yamlwith status indicators:- ✓ (green) - Managed command surface exists
- ⚠ (yellow) - Configured but managed command surface missing
- Available but not configured: Agents you can add
Examples:
View configured agents:
spec-kitty agent config list
Example output:
Configured agents:
✓ opencode (~/.opencode/command/ (global))
✓ claude (~/.claude/commands/ (global))
Available but not configured:
- codex
- gemini
- cursor
...
spec-kitty agent config add
Add one or more agents to your project.
Synopsis:
spec-kitty agent config add <agent1> [agent2] [agent3] ...
Description:
Adds specified agents to your project by registering slash-command agents against their global command roots, installing Codex/Vibe command skills where applicable, and updating .kittify/config.yaml.
Arguments:
<agents>: Space-separated list of agent keys to add. Valid keys:claude,codex,gemini,cursor,qwen,opencode,windsurf,kilocode,roo,copilot,auggie,q.
Options: None
Output:
- Success:
✓ Registered <agent>for slash-command agents or✓ Registered <agent> (... command skills in .agents/skills/)for skill-based agents - Already configured:
Already configured: <agent>(informational, not an error) - Error:
Error: Invalid agent keys: <keys>with list of valid keys
Side Effects:
- Uses the global command root for slash-command agents (e.g.,
~/.claude/commands/) - Creates project-local command skills for Codex and Vibe
- Adds agent key to
.kittify/config.yamlunderagents.available
Examples:
Add a single agent:
spec-kitty agent config add claude
Add multiple agents:
spec-kitty agent config add codex gemini cursor
Example output:
✓ Registered codex (11 command skills in .agents/skills/)
✓ Registered gemini (global commands at ~/.gemini/commands/)
✓ Registered cursor (global commands at ~/.cursor/commands/)
Updated .kittify/config.yaml
Error handling (invalid key):
spec-kitty agent config add cluade
Output:
Error: Invalid agent keys: cluade
Valid agent keys:
claude, codex, gemini, cursor, qwen, opencode,
windsurf, kilocode, roo, copilot, auggie, q
spec-kitty agent config remove
Remove one or more agents from your project.
Synopsis:
spec-kitty agent config remove [OPTIONS] <agent1> [agent2] [agent3] ...
Description:
Removes specified agents from your project by deleting agent directories and updating .kittify/config.yaml.
Arguments:
<agents>: Space-separated list of agent keys to remove. Valid keys: same asaddcommand.
Options:
--keep-config: Keep agent inconfig.yamlbut delete directory (default: False)
Output:
- Success:
✓ Removed <agent-dir>/for each agent - Already removed:
• <agent-dir>/ already removed(dim, informational) - Error:
Error: Invalid agent keys: <keys>with list of valid keys
Side Effects:
- Deletes entire agent directory (e.g.,
.gemini/and all contents) - Removes agent key from
.kittify/config.yaml(unless--keep-configused)
Warning: Directory deletion is permanent. Ensure you don't have custom modifications in template files before removing.
Examples:
Remove a single agent:
spec-kitty agent config remove gemini
Remove multiple agents:
spec-kitty agent config remove cursor qwen windsurf
Example output:
✓ Removed .cursor/
✓ Removed .qwen/
✓ Removed .windsurf/
Updated .kittify/config.yaml
Keep in config but remove directory:
spec-kitty agent config remove gemini --keep-config
Restore later with:
spec-kitty agent config sync --create-missing
spec-kitty agent config status
Audit agent configuration sync status.
Synopsis:
spec-kitty agent config status
Description:
Displays a comprehensive table showing the current supported slash-command agents, whether they're configured, whether directories exist, and sync status.
Arguments: None
Options: None
Output:
Rich table with columns:
- Agent Key (cyan): Agent identifier
- Directory (dim): Filesystem path
- Configured: ✓ if in
config.yaml, ✗ otherwise - Exists: ✓ if directory present, ✗ otherwise
- Status: Colored status indicator
Status values:
[green]OK[/green]: Configured and managed command surface exists (normal state)[yellow]Missing[/yellow]: Configured but managed command surface doesn't exist[red]Orphaned[/red]: Project-local directory exists but is not configured (should be cleaned up)[dim]Not used[/dim]: Neither configured nor present (available to add)
Actionable message: If orphaned directories detected, shows: "Run 'spec-kitty agent config sync --remove-orphaned' to clean up"
Examples:
Audit agent configuration:
spec-kitty agent config status
Example output:
Agent Key Directory Configured Exists Status
──────────────────────────────────────────────────────────────────
claude ~/.claude/commands/ (global) ✓ ✓ OK
codex .agents/skills/ (project skills) ✗ ✓ Orphaned
gemini ~/.gemini/commands/ (global) ✓ ✗ Missing
cursor ~/.cursor/commands/ (global) ✗ ✗ Not used
qwen ~/.qwen/commands/ (global) ✓ ✓ OK
...
⚠ Found 1 orphaned directory
Run 'spec-kitty agent config sync --remove-orphaned' to clean up
spec-kitty agent config sync
Synchronize filesystem with config.yaml.
Synopsis:
spec-kitty agent config sync [OPTIONS]
Description:
Automatically aligns filesystem with .kittify/config.yaml by checking configured managed command surfaces and/or removing orphaned project-local directories.
Arguments: None
Options:
--create-missing: Check configured managed command surfaces and restore supported project-local skill roots (default: False)--remove-orphaned/--keep-orphaned: Remove orphaned directories (directories present but not configured). Default:--remove-orphaned(True)
Default behavior (no flags): Removes orphaned directories only. Does NOT create missing directories.
Output:
- Present global commands:
✓ Global commands present for <agent> at <global-dir>/ - Removing:
✓ Removed orphaned <agent-dir>/ - No changes:
No changes needed - filesystem matches config
Side Effects:
- Checks global command roots or creates supported project-local skill roots (if
--create-missing) - Deletes orphaned agent directories (if
--remove-orphaned, default)
Examples:
Default sync (remove orphaned only):
spec-kitty agent config sync
Create missing configured agents:
spec-kitty agent config sync --create-missing
Complete sync (both directions):
spec-kitty agent config sync --create-missing --remove-orphaned
Keep orphaned directories:
spec-kitty agent config sync --keep-orphaned
Example output:
✓ Global commands present for claude at ~/.claude/commands/
✓ Removed orphaned .gemini/
No changes needed:
No changes needed - filesystem matches config
spec-kitty agent config set
Set a project-level agent configuration value.
Synopsis:
spec-kitty agent config set KEY VALUE
Description:
Sets a project-level configuration value in .kittify/config.yaml. Currently supported keys: auto_commit (enable/disable automatic commits by agents, true/false).
Arguments:
KEY: Configuration key (e.g.,auto_commit) [required]VALUE: Configuration value (e.g.,true,false) [required]
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Examples:
Disable auto-commit:
spec-kitty agent config set auto_commit false
Enable auto-commit:
spec-kitty agent config set auto_commit true
spec-kitty agent release
Synopsis: spec-kitty agent release [OPTIONS] COMMAND [ARGS]...
Description: Release management subcommands for AI agents.
Commands:
prep- Prepare a release candidate (bump version, validate changelog, tag)
spec-kitty agent release prep
Synopsis: spec-kitty agent release prep [OPTIONS]
Description: Prepare a release candidate: validates CHANGELOG.md, bumps version in pyproject.toml, creates an annotated git tag, and optionally opens a GitHub release draft. Added in 3.1.0 (mission 068).
Options:
| Flag | Description |
|---|---|
--channel TEXT |
Release channel: alpha, beta, or stable (default: stable) |
--dry-run |
Show what would change without modifying files or creating a tag |
--json |
Machine-readable JSON output |
--help |
Show this message and exit |
Examples:
spec-kitty agent release prep --channel alpha --dry-run
spec-kitty agent release prep --channel beta
spec-kitty agent release prep --channel stable
spec-kitty agent tests
Synopsis: spec-kitty agent tests [OPTIONS] COMMAND [ARGS]...
Description: Test-suite utility subcommands for AI agents.
Commands:
stale-check- Detect test assertions that reference version-dependent or environment-dependent values
spec-kitty agent tests stale-check
Synopsis: spec-kitty agent tests stale-check [OPTIONS]
Description: Scan the test suite for stale assertions: version strings, hardcoded timestamps, or environment-specific values that would cause false failures after a release. Uses ast-based analysis (no test execution required). Added in 3.1.0 (mission 068).
Options:
| Flag | Description |
|---|---|
--base TEXT |
Base git ref to diff against (default: HEAD~1) |
--head TEXT |
Head git ref to scan (default: HEAD) |
--json |
Machine-readable JSON output |
--help |
Show this message and exit |
Examples:
spec-kitty agent tests stale-check
spec-kitty agent tests stale-check --base main --head HEAD
spec-kitty agent tests stale-check --json
spec-kitty specify
Synopsis: spec-kitty specify [OPTIONS] FEATURE
Description: Create a mission scaffold in kitty-specs/.
Arguments:
FEATURE: Feature name or slug (e.g.,user-authentication) [required]
Options:
| Flag | Description |
|---|---|
--mission-type TEXT |
Mission type (e.g., software-dev, research) |
--json |
Emit JSON result |
--help |
Show this message and exit |
Examples:
spec-kitty specify user-authentication
spec-kitty specify user-authentication --mission-type software-dev
spec-kitty specify my-feature --json
spec-kitty plan
Synopsis: spec-kitty plan [OPTIONS]
Description: Scaffold plan.md for a mission.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission slug (e.g., 001-user-authentication) |
--json |
Emit JSON result |
--help |
Show this message and exit |
Examples:
spec-kitty plan
spec-kitty plan --mission 001-user-authentication
spec-kitty plan --json
spec-kitty tasks
Synopsis: spec-kitty tasks [OPTIONS]
Description: Finalize tasks metadata after task generation.
Options:
| Flag | Description |
|---|---|
--json |
Emit JSON result |
--help |
Show this message and exit |
Examples:
spec-kitty tasks
spec-kitty tasks --json
spec-kitty config
Synopsis: spec-kitty config [OPTIONS]
Description: Display project configuration and asset resolution information.
Options:
| Flag | Description |
|---|---|
--show-origin |
Show where each resolved asset comes from (tier label + path) |
--mission, -m TEXT |
Mission to resolve assets for (default: software-dev) |
--help |
Show this message and exit |
Examples:
spec-kitty config
spec-kitty config --show-origin
spec-kitty config -m documentation
spec-kitty next
Synopsis: spec-kitty next [OPTIONS]
Description: Decide and emit the next agent action for the current mission. Agents call this command repeatedly in a loop. The system inspects the mission state machine, evaluates guards, and returns a deterministic decision with an action and prompt file.
As of 3.1.0, omitting --result is query mode: the command reads and prints the current mission state without advancing it. --agent and --mission are still required.
Options:
| Flag | Description |
|---|---|
--agent TEXT |
Agent name (required) |
--result TEXT |
Result of previous step: success, failed, or blocked. Omit for query mode. |
--mission TEXT |
Mission slug (canonical flag; required) |
--json |
Output JSON decision only |
--answer TEXT |
Answer to a pending decision. This is a mutating operation and should be used with --agent and --result. |
--decision-id TEXT |
Decision ID (required if multiple pending) |
--help |
Show this message and exit |
Examples:
# Query mode — inspect current state without advancing (3.1.0+)
spec-kitty next --agent claude --mission 034-my-feature --json
# Normal agent loop
spec-kitty next --agent claude --mission 034-my-feature --json
spec-kitty next --agent codex --mission 034-my-feature
spec-kitty next --agent gemini --mission 034-my-feature --result failed --json
spec-kitty next --agent claude --mission 034-my-feature --answer "yes" --json
spec-kitty next --agent claude --mission 034-my-feature --answer "approve" --decision-id "input:review" --json
Compatibility notes:
- Fresh-run query JSON is now
mission_state: "not_started"pluspreview_step; do not teach or depend onunknownas the primary fresh-run state. - Query mode still accepts
--agentas a compatibility form for existing callers, butspec-kitty next --mission <slug>is the primary contract to teach and automate against. - Planning-artifact work packages execute in repository root outside the lane graph, so query and step responses may refer to the main checkout instead of a lane worktree.
- Status payloads use a canonical nested
staleobject. Temporary flat stale fields remain available only as a transitional compatibility path for existing callers.
spec-kitty migrate
Synopsis: spec-kitty migrate [OPTIONS]
Description: Migrate project .kittify/ to centralized model. First ensures the global runtime (~/.kittify/) is up to date, then classifies per-project files as identical (removed), customized (moved to overrides/), or project-specific (kept). Running this command multiple times is safe (idempotent). After the first successful run, subsequent invocations are a near-instant no-op.
Options:
| Flag | Description |
|---|---|
--dry-run |
Show what would change without modifying the filesystem |
--verbose, -v |
Show file-by-file detail |
--force |
Skip confirmation prompt |
--help |
Show this message and exit |
Examples:
spec-kitty migrate --dry-run
spec-kitty migrate --force
spec-kitty migrate --verbose
spec-kitty migrate normalize-lifecycle
Synopsis: spec-kitty migrate normalize-lifecycle [OPTIONS]
Description: Normalize legacy kitty-specs mission state for the MVP lifecycle model. This command repairs enough historical mission state to make active/recent/stale/abandoned classification reliable across older repositories. It backfills missing identity, rebuilds missing event logs from legacy state, and regenerates derived status, progress, and lifecycle views used by the CLI and Teamspace. The command is safe to run more than once.
Options:
| Flag | Description |
|---|---|
--json |
Emit a structured per-mission normalization report |
--dry-run |
Preview lifecycle normalization without modifying the filesystem |
--mission SLUG |
Scope to a single mission slug instead of scanning all missions |
--help |
Show this message and exit |
Examples:
spec-kitty migrate normalize-lifecycle --dry-run
spec-kitty migrate normalize-lifecycle --json
spec-kitty migrate normalize-lifecycle --mission 083-private-teamspace
spec-kitty auth
Synopsis: spec-kitty auth [OPTIONS] COMMAND [ARGS]...
Description: Authentication commands.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
login- Log in to the sync servicelogout- Log out from the sync servicestatus- Show current authentication status
spec-kitty auth login
Synopsis: spec-kitty auth login [OPTIONS]
Description: Log in to the sync service.
Options:
| Flag | Description |
|---|---|
--username, -u TEXT |
Your username or email |
--password, -p TEXT |
Your password |
--force, -f |
Re-authenticate even if already logged in |
--help |
Show this message and exit |
spec-kitty auth logout
Synopsis: spec-kitty auth logout [OPTIONS]
Description: Log out from the sync service.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty auth status
Synopsis: spec-kitty auth status [OPTIONS]
Description: Show current authentication status.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty charter
Synopsis: spec-kitty charter [OPTIONS] COMMAND [ARGS]...
Description: Charter management commands. As of 3.1.0 (mission 063), spec-kitty charter is the canonical command. spec-kitty constitution has been removed; all existing constitution references should be updated to charter.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
interview- Capture charter interview answers for later generationgenerate- Generate charter bundle from interview answers + doctrine referencescontext- Render charter context for a specific workflow actionsync- Sync charter.md to structured YAML config filesstatus- Display charter sync status
spec-kitty charter interview
Synopsis: spec-kitty charter interview [OPTIONS]
Description: Capture charter interview answers for later generation.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission key for charter defaults (default: software-dev) |
--profile TEXT |
Interview profile: minimal or comprehensive (default: minimal) |
--defaults |
Use deterministic defaults without prompts |
--selected-paradigms TEXT |
Comma-separated paradigm IDs override |
--selected-directives TEXT |
Comma-separated directive IDs override |
--available-tools TEXT |
Comma-separated tool IDs override |
--json |
Output JSON |
--help |
Show this message and exit |
spec-kitty charter generate
Synopsis: spec-kitty charter generate [OPTIONS]
Description: Generate charter bundle from interview answers + doctrine references.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission key for template-set defaults |
--template-set TEXT |
Override doctrine template set (must exist in packaged doctrine missions) |
--from-interview, --no-from-interview |
Load interview answers if present (default: --from-interview) |
--profile TEXT |
Default profile when no interview is available (default: minimal) |
--force, -f |
Overwrite existing charter bundle |
--json |
Output JSON |
--help |
Show this message and exit |
spec-kitty charter context
Synopsis: spec-kitty charter context [OPTIONS]
Description: Render charter context for a specific workflow action.
Options:
| Flag | Description |
|---|---|
--action TEXT |
Workflow action (specify, plan, implement, review) [required] |
--mark-loaded, --no-mark-loaded |
Persist first-load state (default: --mark-loaded) |
--json |
Output JSON |
--help |
Show this message and exit |
spec-kitty charter sync
Synopsis: spec-kitty charter sync [OPTIONS]
Description: Sync charter.md to structured YAML config files.
Options:
| Flag | Description |
|---|---|
--force, -f |
Force sync even if not stale |
--json |
Output JSON |
--help |
Show this message and exit |
spec-kitty charter status
Synopsis: spec-kitty charter status [OPTIONS]
Description: Display charter sync status.
Options:
| Flag | Description |
|---|---|
--json |
Output JSON |
--help |
Show this message and exit |
spec-kitty context
Synopsis: spec-kitty context [OPTIONS] COMMAND [ARGS]...
Description: Query workspace context information.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
info- Show context information for current or specified workspacelist- List all workspace contextscleanup- Clean up orphaned workspace contexts
spec-kitty context info
Synopsis: spec-kitty context info [OPTIONS]
Description: Show context information for current or specified workspace.
Options:
| Flag | Description |
|---|---|
--workspace, -w TEXT |
Workspace name (auto-detected if inside worktree) |
--json |
Output in JSON format |
--help |
Show this message and exit |
Examples:
spec-kitty context info
spec-kitty context info --workspace 010-feature-lane-a
spec-kitty context info --json
spec-kitty context list
Synopsis: spec-kitty context list [OPTIONS]
Description: List all workspace contexts.
Options:
| Flag | Description |
|---|---|
--json |
Output in JSON format |
--orphaned |
Show only orphaned contexts |
--help |
Show this message and exit |
Examples:
spec-kitty context list
spec-kitty context list --orphaned
spec-kitty context list --json
spec-kitty context cleanup
Synopsis: spec-kitty context cleanup [OPTIONS]
Description: Clean up orphaned workspace contexts. Removes context files for workspaces that no longer exist.
Options:
| Flag | Description |
|---|---|
--dry-run |
Show what would be cleaned up without deleting |
--help |
Show this message and exit |
Examples:
spec-kitty context cleanup --dry-run
spec-kitty context cleanup
spec-kitty doctor
Synopsis: spec-kitty doctor [OPTIONS] COMMAND [ARGS]...
Description: Project health diagnostics. As of 3.1.0, running spec-kitty doctor (without a subcommand) also performs a full mission health scan: stale claims (WPs stuck in claimed or in_progress with no recent activity), orphaned worktrees (worktrees whose WPs are all terminal), and unresolved materialization drift. Use this as the first step when recovering from a crash or unexpected interruption.
# Full project health scan (3.1.0+)
spec-kitty doctor
spec-kitty doctor --mission 034-my-feature
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Restrict scan to a specific mission slug |
--json |
Machine-readable JSON output |
--help |
Show this message and exit |
Commands:
state-roots- Show state roots, surface classification, and safety warnings
spec-kitty doctor state-roots
Synopsis: spec-kitty doctor state-roots [OPTIONS]
Description: Show state roots, surface classification, and safety warnings. Displays the three state roots with resolved paths, all registered state surfaces grouped by root with authority and Git classification, and warnings for any runtime surfaces not covered by .gitignore.
Options:
| Flag | Description |
|---|---|
--json |
Machine-readable JSON output |
--help |
Show this message and exit |
Examples:
spec-kitty doctor state-roots
spec-kitty doctor state-roots --json
spec-kitty glossary
Synopsis: spec-kitty glossary [OPTIONS] COMMAND [ARGS]...
Description: Glossary management commands.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
list- List all terms in glossaryconflicts- Display conflict history from event logresolve- Resolve a conflict asynchronously
spec-kitty glossary list
Synopsis: spec-kitty glossary list [OPTIONS]
Description: List all terms in glossary.
Options:
| Flag | Description |
|---|---|
--scope TEXT |
Filter by scope (mission_local, team_domain, audience_domain, spec_kitty_core) |
--status TEXT |
Filter by status (active, deprecated, draft) |
--json |
Output as JSON (machine-parseable) |
--help |
Show this message and exit |
spec-kitty glossary conflicts
Synopsis: spec-kitty glossary conflicts [OPTIONS]
Description: Display conflict history from event log.
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Filter conflicts by mission ID |
--unresolved |
Show only unresolved conflicts |
--strictness TEXT |
Filter by effective strictness level (off, medium, max) |
--json |
Output as JSON (machine-parseable) |
--help |
Show this message and exit |
spec-kitty glossary resolve
Synopsis: spec-kitty glossary resolve [OPTIONS] CONFLICT_ID
Description: Resolve a conflict asynchronously.
Arguments:
CONFLICT_ID: Conflict ID to resolve [required]
Options:
| Flag | Description |
|---|---|
--mission TEXT |
Mission ID for event log (auto-detected if omitted) |
--help |
Show this message and exit |
spec-kitty tracker
Synopsis: spec-kitty tracker [OPTIONS] COMMAND [ARGS]...
Description: Task tracker commands.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
providers- List supported tracker providersbind- Bind the current project to a trackerstatus- Show tracker binding and sync statusunbind- Remove tracker binding for this projectlist-tickets- Browse visible tickets for the resolved provider resourcemap- Work-package mapping commandssync- Tracker synchronization commands
spec-kitty tracker providers
Synopsis: spec-kitty tracker providers [OPTIONS]
Description: List supported tracker providers, grouped into SaaS-backed (linear, jira, github, gitlab) and local/native (beads, fp) modes.
Options:
| Flag | Description |
|---|---|
--json |
Render provider list as JSON |
--help |
Show this message and exit |
spec-kitty tracker bind
Synopsis: spec-kitty tracker bind [OPTIONS]
Description: Bind the current project to an issue tracker. For SaaS-backed providers (linear, jira, github, gitlab), discovery resolves bindable resources automatically, --bind-ref is available for CI/automation, and --select can be used for non-interactive selection. Local/native providers (beads, fp) still require --workspace and --credential.
Options:
| Flag | Description |
|---|---|
--provider TEXT |
Provider name (linear, jira, github, gitlab, beads, fp) [required] |
--bind-ref TEXT |
Binding reference for CI/automation (validates against host) |
--select INTEGER |
Auto-select candidate by number (non-interactive) |
--workspace TEXT |
Provider workspace/team/project identifier (local/native providers only) |
--doctrine-mode TEXT |
Doctrine mode: external_authoritative, spec_kitty_authoritative, or split_ownership (default: external_authoritative) |
--field-owner TEXT |
Split ownership mapping: field=owner (local/native providers only) |
--credential TEXT |
Provider credential key/value: key=value (local/native providers only) |
--help |
Show this message and exit |
spec-kitty tracker status
Synopsis: spec-kitty tracker status [OPTIONS]
Description: Show tracker binding and sync status. SaaS-backed providers read status from the Spec Kitty SaaS control plane; local/native providers show local config and cache details.
Options:
| Flag | Description |
|---|---|
--json |
Render status as JSON |
--help |
Show this message and exit |
spec-kitty tracker unbind
Synopsis: spec-kitty tracker unbind [OPTIONS]
Description: Remove tracker binding for this project. For SaaS-backed providers this clears only local project config; unlinking the provider account still happens in the Spec Kitty dashboard.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
spec-kitty tracker list-tickets
Synopsis: spec-kitty tracker list-tickets [OPTIONS]
Description: Browse visible tickets for the resolved provider resource.
Options:
| Flag | Description |
|---|---|
--provider TEXT |
Tracker provider slug [required] |
--limit INTEGER |
Maximum tickets to return (default: 20, range: 1-100) |
--json |
Render tickets as a JSON array |
--help |
Show this message and exit |
spec-kitty tracker map
Synopsis: spec-kitty tracker map [OPTIONS] COMMAND [ARGS]...
Description: Work-package mapping commands.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
add- Add or update a WP-to-external issue mappinglist- List tracker mappings
spec-kitty tracker map add
Synopsis: spec-kitty tracker map add [OPTIONS]
Description: Add or update a WP-to-external issue mapping. For SaaS-backed providers this command hard-fails and directs you to the Spec Kitty dashboard, where mappings are managed server-side.
Options:
| Flag | Description |
|---|---|
--wp-id TEXT |
Work package ID (e.g., WP01) [required] |
--external-id TEXT |
External issue ID [required] |
--external-key TEXT |
External issue key |
--external-url TEXT |
External issue URL |
--help |
Show this message and exit |
spec-kitty tracker map list
Synopsis: spec-kitty tracker map list [OPTIONS]
Description: List tracker mappings. For SaaS-backed providers this reads the SaaS-authoritative mapping view; for local/native providers it reads the local mapping store.
Options:
| Flag | Description |
|---|---|
--provider TEXT |
Read SaaS mappings by provider without requiring a bound project |
--json |
Render mappings as JSON |
--help |
Show this message and exit |
spec-kitty tracker sync
Synopsis: spec-kitty tracker sync [OPTIONS] COMMAND [ARGS]...
Description: Tracker synchronization commands.
Options:
| Flag | Description |
|---|---|
--help |
Show this message and exit |
Commands:
pull- Pull tracker updates into the local cachepush- Push explicit tracker mutations to the upstream providerrun- Run pull+push synchronization in one operationpublish- Legacy snapshot publish command
spec-kitty tracker sync pull
Synopsis: spec-kitty tracker sync pull [OPTIONS]
Description: Pull tracker updates into the local cache.
Options:
| Flag | Description |
|---|---|
--limit INTEGER |
Maximum items to pull (default: 100, range: 1-10000) |
--json |
Render sync result as JSON |
--help |
Show this message and exit |
spec-kitty tracker sync push
Synopsis: spec-kitty tracker sync push [OPTIONS]
Description: Push explicit tracker mutations to the upstream provider. For SaaS-backed providers this is an explicit-mutation path and requires --items-json; use tracker sync run for the normal full-sync path.
Options:
| Flag | Description |
|---|---|
--limit INTEGER |
Maximum items to push (local/native providers only; default: 100, range: 1-10000) |
--items-json TEXT |
Path to a JSON file containing a PushItem[] array for SaaS-backed providers. Use - for stdin |
--json |
Render sync result as JSON |
--help |
Show this message and exit |
spec-kitty tracker sync run
Synopsis: spec-kitty tracker sync run [OPTIONS]
Description: Run pull+push synchronization in one operation. For SaaS-backed providers this is the normal full-sync path executed entirely through Spec Kitty SaaS.
Options:
| Flag | Description |
|---|---|
--limit INTEGER |
Maximum items per direction (default: 100, range: 1-10000) |
--json |
Render sync result as JSON |
--help |
Show this message and exit |
spec-kitty tracker sync publish
Synopsis: spec-kitty tracker sync publish [OPTIONS]
Description: Publish a local tracker snapshot to Spec Kitty SaaS. This command is retired for SaaS-backed providers and fails with guidance to use tracker sync push or tracker sync run instead.
Options:
| Flag | Description |
|---|---|
--server-url TEXT |
Spec Kitty SaaS base URL |
--auth-token TEXT |
Bearer token for SaaS API authentication |
--timeout-seconds FLOAT |
Request timeout in seconds (default: 10.0, range: 1.0-120.0) |
--json |
Render publish result as JSON |
--help |
Show this message and exit |
Lane Values
The Spec Kitty status model uses 7 lanes plus one alias:
| Lane | Description |
|---|---|
planned |
Work package is planned but not started |
claimed |
Work package has been claimed by an agent |
in_progress |
Work package is actively being implemented |
for_review |
Work package is submitted for review |
approved |
Work package has been approved |
done |
Work package is complete (terminal) |
blocked |
Work package is blocked (reachable from planned/claimed/in_progress/for_review) |
canceled |
Work package is canceled (terminal, reachable from all non-done lanes) |
Note:
doingis accepted as an alias forin_progressat input boundaries but is never persisted in events.