Spec-Driven Development for serious software developers. Spec Coding with with Claude, Cursor, Gemini, Codex. Kanban dashboard, git worktrees, auto-merge and more.
$ npx -y skills add Priivacy-ai/spec-kitty --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
What's inside

Spec Kitty is an open-source CLI for turning product intent into a repo-native AI coding workflow:
spec -> plan -> tasks -> next -> review -> accept -> merge
Use it to build a governed software factory around Claude Code, Codex, Cursor, Gemini, GitHub Copilot, Windsurf, OpenCode, and other AI coding agents. Spec Kitty keeps specs, plans, work packages, acceptance criteria, review state, and merge decisions in your repository, then gives agents isolated git worktrees so implementation can happen in parallel without branch chaos.
Spec Kitty is for teams building software factories: repeatable inputs, clear work-package boundaries, isolated execution, visible progress, and review gates. It can support dark software factories and autonomous coding experiments, but it is deliberately not a lights-out black box by default. Humans define intent, architecture, and acceptance criteria; agents implement inside traceable worktrees; reviewers accept, reject, or merge with an audit trail.
The goal is not more prompt text. The goal is a durable operating system for agentic coding where the repository remains the source of truth.
Use Spec Kitty when:
It is probably overkill for one-off edits, tiny scripts, or teams that do not use Git.
| Need | Spec Kitty provides |
|---|---|
| Start from intent | Guided specify, plan, and tasks workflows |
| Keep agents aligned | Repository-native mission artifacts under kitty-specs/ |
| Split implementation | Work packages with lifecycle lanes such as planned, in_progress, for_review, approved, and done |
| Run agents in parallel | Isolated git worktrees under .worktrees/ |
| Keep quality visible | Review, accept, merge, and retrospective gates |
| See progress | Optional local kanban dashboard with spec-kitty dashboard |
| Integrate agents | Slash commands or skills for Claude Code, Codex, Cursor, Gemini, Copilot, Windsurf, OpenCode, and more |
| Learn from missions | Every completed mission generates a retrospective by default. Tune via .kittify/config.yaml#retrospective or charter; see how-to. |
Spec Kitty keeps runtime governance in the repo instead of treating it as
agent-only prompt text. The trail model in docs/trail-model.md
describes how spec-kitty dispatch "<request>" maps operator intent to
runtime behavior, while
docs/host-surface-parity.md tracks parity across
CLI, slash-command, and hosted surfaces.
The primary standalone governance command is:
spec-kitty dispatch "<request>" - loads governance context, opens an Op record, and returns the context the agent must use before doing the workInstall the CLI:
pipx install spec-kitty-cli
pipx is the preferred installer for the CLI because it keeps Spec Kitty in its
own virtual environment and avoids the externally-managed-environment errors
common on modern Linux distributions.
Other supported install methods:
uv tool install spec-kitty-cli
# or, inside an activated virtual environment
python -m pip install spec-kitty-cli
Create or initialize a project:
spec-kitty init my-project --ai claude
cd my-project
spec-kitty verify-setup
Replace claude with your agent key when needed. Common choices include codex, cursor, gemini, copilot, opencode, qwen, windsurf, kiro, vibe, pi, and letta. See Supported Agents for the current list.
Open your AI coding agent in the project and run the core workflow:
/spec-kitty.charter
/spec-kitty.specify Build a small task list app.
/spec-kitty.plan
/spec-kitty.tasks
Then let the runtime choose the next action until the mission is ready:
spec-kitty next --agent claude --mission <mission-slug>
Review, accept, merge, and close the loop:
/spec-kitty.review
/spec-kitty.accept
/spec-kitty.merge --push
After merge, run /spec-kitty-mission-review. The mission's
retrospective.yaml is authored during the runtime terminus (HiC prompt or
autonomous facilitator), not by merge. Once it exists, use
spec-kitty retrospect summary for the cross-mission view and
spec-kitty agent retrospect synthesize --mission <mission-slug> to apply any
staged proposals (dry-run by default โ pass --apply to mutate).
For the full walkthrough, see Your First Mission.
| Command | Purpose |
|---|---|
spec-kitty init . --ai <agent> | Add Spec Kitty to the current repo |
spec-kitty verify-setup | Check local installation and project wiring |
spec-kitty dashboard | Open the local mission dashboard |
spec-kitty next --agent <agent> --mission <slug> | Ask Spec Kitty what the agent should do next |
spec-kitty upgrade | Update an existing project after upgrading the CLI |
spec-kitty --help | Show available commands |
Start here:
Deeper topics:
Hosted auth, sync, and tracker flows remain opt-in. For setup details, see Hosted Sync Workspaces, Internal Hosted-Readiness, and Launch-Readiness Behavior.
Spec Kitty can be used as part of a dark software factory or autonomous coding pipeline, but its default model is governed and human-in-loop. It keeps specs, work packages, agent actions, review decisions, and merge state visible in the repository.
Spec Kitty supports common AI coding agents and coding harnesses including Claude Code, Codex, Cursor, Gemini, GitHub Copilot, OpenCode, Qwen, Windsurf, Kiro, Vibe, Pi, and Letta. See Supported Agents.
Spec Kitty is inspired by spec-driven development workflows, but adds repo-native mission state, work-package lanes, git worktree isolation, a local dashboard, governance commands, and an explicit next -> review -> accept -> merge runtime loop.
No. Spec Kitty is local-first and stores its core artifacts in your repo. Hosted tracker and sync integrations are optional.
git clone https://github.com/Priivacy-ai/spec-kitty.git
cd spec-kitty
pip install -e ".[test]"
When testing templates from a source checkout:
export SPEC_KITTY_TEMPLATE_ROOT="$(pwd)"
spec-kitty init my-project --ai claude
See the Contributing guide for contribution guidelines.
The drift-detector required check protects the shared identity-boundary
contract across Spec Kitty repos. Contributor and admin details live in
Identity-Boundary CI Gate.
Spec Kitty is released under the MIT License.
.agent/
workflows/
spec-kitty-standalone.md
.all-contributorsrc
.amazonq/
prompts/
spec-kitty-standalone.md
.augment/
commands/
spec-kitty-standalone.md
.claudeignore
.cursor/
commands/
spec-kitty-standalone.md
.gemini/
commands/
spec-kitty-standalone.md
.gitattributes
.github/
CHANGELOG.md
CODEOWNERS
CONTRIBUTING.md
ISSUE_TEMPLATE/
bug_report.md
config.yml
enhancement_request.md
idea_brainstorm.md
prompts/
spec-kitty-standalone.md
PULL_REQUEST_TEMPLATE.md
workflows/
all-contributors-normalize.yml
all-contributors-sync.yml
canonical-producer-lint.yml
check-spec-kitty-events-alignment.yml
ci-quality.yml
ci-windows.yml
docs-freshness.yml
docs-pages.yml
doctrine-charter-tests.yml
drift-detector.yml
mutation-remediation.md
orchestrator-boundary.yml
plugin-validate.yml
protect-main.yml
release-readiness.yml
release.yml
scripts/
check-release-exists.sh
create-github-release.sh
create-release-packages.sh
generate-release-notes.sh
get-next-version.sh
update-version.sh
teamspace-mission-state-readiness.yml
ui-e2e.yml
.gitignore
.kilocode/
workflows/
spec-kitty-standalone.md
.kiro/
prompts/
spec-kitty-standalone.md
.kittify/
agent_profiles_manifest.json
charter/
charter.md
charter.yaml
directives.yaml
governance.yaml
graph.yml
interview/
answers.yaml
metadata.yaml
references.yaml
synthesis-manifest.yaml
command-skills-manifest.json
config.yaml
curation/
state.json
doctrine/
directive/
.provenance/
DIRECTIVE_evidence_logs_must_persist.yaml
DIRECTIVE_terminus_retrospective_always_on.yaml
DIRECTIVE_evidence_logs_must_persist.md
DIRECTIVE_terminus_retrospective_always_on.md
overlays/
calibration-documentation.yaml
calibration-erp-custom.yaml
calibration-research.yaml
calibration-software-dev.yaml
procedure/
.provenance/
PROCEDURE_cross_namespace_owned_files_autodetect.yaml
PROCEDURE_issue_matrix_autoscaffold.yaml
PROCEDURE_cross_namespace_owned_files_autodetect.md
PROCEDURE_issue_matrix_autoscaffold.md
tactic/
.provenance/
TACTIC_mirror_external_issue_numbering.yaml
TACTIC_mirror_external_issue_numbering.md
evidence/
01KTTCEAF0WTVAHYGND1D16R68/
evidence.md
record.json
01KTTDPPRCKWC85S4AB848FYD7/
evidence.md
record.json
01KTTDPRW03BT53YT5XBWPVNZB/
evidence.md
record.json
01KTTDT7BJB6FCVS71BX5V4429/
evidence.md
record.json
01KTTMYQQFANE2X67MWEXFYVC6/
evidence.md
record.json
01KTY6AN6Y74EG53ECHE7AN0Y7/
evidence.md
record.json
01KTY78CYHFRK9GPCB956MCNCX/
evidence.md
record.json
01KTY78F3DCC7WEFRYYAVS3FQ8/
evidence.md
record.json
01KTY78H7CDFEPB4TPKYNAE44T/
evidence.md
record.json
01KTYDGYWA595WBFCH8WSYHVNT/
evidence.md
record.json
01KTYE0C9CF75FQN8127JP33B3/
evidence.md
record.json
01KTYE0EDV12HCQZB2BFPXNBZ2/
evidence.md
record.json
01KTYW56FW34KY6FM6J0C90GHT/
evidence.md
record.json
01KTYW5NC527B19TCY05M6ZE5D/
evidence.md
record.json
01KTYX4A095KW707C2EBJQPPBN/
evidence.md
record.json
01KTYXF27M5X8AG57BBN1QDJZ5/
evidence.md
record.json
01KTYXNMGTJXSP9B7R3YKP07S2/
evidence.md
record.json
01KTYY3HDT1D1N4SB2XFJNHDFJ/
evidence.md
record.json
01KTYYFC60ZGDEAE4VWWP96YV5/
evidence.md
record.json
01KTZXE73F2WT2X3WNNW3Q4PVJ/
evidence.md
record.json
01KTZYFM79XGAPFSNPT3JZGA52/
evidence.md
record.json
01KTZYGBS72367S0YCHBWDHE5G/
evidence.md
record.json
01KTZYJGPHSQRBE29Q6HBNQPP8/
evidence.md
record.json
01KTZZJAHP3MYRDXRW6PM5CZQQ/
evidence.md
record.json
01KV00KSKPYNTHT9V1CAZ0QS6A/
evidence.md
record.json
01KV00MNXGAHVV90778DKKS5K0/
evidence.md
record.json
01KV00SRGSVTWSF3TV2G7M0BPX/
evidence.md
record.json
01KV0421T7MFHS014E6P8348EA/
evidence.md
record.json
01KV07VEY31YEQTCR22JQ3GHEM/
evidence.md
record.json
01KV091MHWGN2YR0PT0NVB3W04/
evidence.md
record.json
01KV0927XG6B59261E04SJTBYN/
evidence.md
record.json
01KV0AQX3T85C1A8GVAVCVEMTJ/
evidence.md
record.json
01KV0AY91FDE1DK671QN1N5K9G/
evidence.md
record.json
01KV0B4AMNGG8P8FN4CZ6RST4M/
evidence.md
record.json
01KV0CQZCG0Z9AT6ZZVSB0STQ7/
evidence.md
record.json
01KV0DTPSAQ9QA3ATXRV2RNGT8/
evidence.md
record.json
01KV0EQZTF5R063KY5EN5FPK44/
evidence.md
record.json
01KV0F0DZYFDWYVSJFCEP2FZQ1/
evidence.md
record.json
01KV0T72ETKNZ990ZKCNZ947W7/
evidence.md
record.json
01KV62CR3XY4ASSRP4WA2BB80A/
evidence.md
record.json
01KV6KJNJTJ0KJWKSHE9NHN0H1/
evidence.md
record.json
01KV6KYEPR7HKMZ3TPEV6W2JPF/
evidence.md
record.json
01KV6M00VRPFZNZEPJ46YR76B8/
evidence.md
record.json
01KV6M4ZFSTE4YNN1JX6BSH6NX/
evidence.md
record.json
01KXAC5G04RVH5P9CDJ8MKKG69/
evidence.md
record.json
01KY0QAADWA0YXA3VGKXV1WVWA/
evidence.md
record.json
01KZ5PRAH2YN2CTYM18TPT0T4Y/
evidence.md
record.json
01KZ5RFY5WHPPQ02KPZB39274J/
evidence.md
record.json
glossaries/
planning-and-tracking.yaml
spec_kitty_core.yaml
legacy-warning-shown-01KTNWFC3B1ZGFR9FTT77X7H2Y
memory/
058-architectural-review.md
available_tooling.md
README.md
templates/
POWERSHELL_SYNTAX.md
metadata.yaml
migrations/
mission-state/
109dbcfa005326f4.json
22a5a9d3195f1833.json
73d2ecec75f25774.json
9f083618f5db308b.json
cf4abc4ad816579a.json
e35c2e74babb3f04.json
quarantine/
109dbcfa005326f4/
charter-end-user-docs-828-01KQCSYD/
status.events.jsonl
cli-session-survival-daemon-singleton-01KQ9M3M/
status.events.jsonl
private-teamspace-ingress-safeguards-01KQH03Y/
status.events.jsonl
stable-320-release-blocker-cleanup-01KQW4DF/
status.events.jsonl
c680177cc61d4709/
charter-deadcode-noop-campsite-01KXW0NY/
status.events.jsonl
ci-topology-shrink-01KWQAVX/
status.events.jsonl
codebase-sanitization-1060-1622-01KV5F0B/
status.events.jsonl
docs-ia-onboarding-overhaul-01KY02JB/
status.events.jsonl
doctrine-silence-guards-01KYFV7Q/
status.events.jsonl
doctrine-tension-edges-01KY1WPC/
status.events.jsonl
mission-type-doctrine-authority-01KXH6GE/
status.events.jsonl
read-path-error-fidelity-adoption-01KV8NPC/
status.events.jsonl
write-side-context-factory-adoption-01KV9W0X/
status.events.jsonl
missions/
01KT6HVH3QND4Q3KCGH2419N4J/
retrospective.yaml
01KTDVHZKGCHCW6HQ4V577PNES/
retrospective.yaml
01KTSJ2H8E5YF2EGJYGAE5Z5Q2/
retrospective.yaml
overrides/
AGENTS.md
missions/
__init__.py
action_index.py
documentation/
command-templates/
implement.md
plan.md
README.md
review.md
specify.md
tasks.md
expected-artifacts.yaml
mission.yaml
README.md
templates/
divio/
explanation-template.md
howto-template.md
README.md
reference-template.md
tutorial-template.md
generators/
jsdoc.json.template
README.md
sphinx-conf.py.template
plan-template.md
README.md
release-template.md
spec-template.md
task-prompt-template.md
tasks-template.md
glossary_hook.py
models.py
plan/
command-templates/
plan.md
README.md
research.md
review.md
specify.md
mission-runtime.yaml
mission.yaml
README.md
templates/
.gitkeep
README.md
primitives.py
README.md
repository.py
research/
command-templates/
implement.md
plan.md
README.md
review.md
specify.md
tasks.md
expected-artifacts.yaml
mission.yaml
README.md
templates/
data-model-template.md
plan-template.md
README.md
research/
research-template.md
evidence-log.csv
README.md
source-register.csv
spec-template.md
task-prompt-template.md
tasks-template.md
software-dev/
actions/
implement/
guidelines.md
index.yaml
plan/
guidelines.md
index.yaml
review/
guidelines.md
index.yaml
specify/
guidelines.md
index.yaml
command-templates/
accept.md
analyze.md
constitution.md
dashboard.md
implement.md
plan.md
README.md
review.md
specify.md
... 1600 moreShowing a partial view of a very large repo.
FAQ
spec-kitty is a Claude Code plugin with 53 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes ad-hoc-profile-load, adversarial-squad, spec-kitty-bulk-edit-classification. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.