squad-kit
v0.11.0 · on npm

Plan once,
execute cheap.

A 3-step SDD workflow CLI for AI coding agents. Your strongest model plans once — now directly from the terminal — and a cheap model executes many times. Prompt caching on every planning run cuts billed input tokens ~70% on typical sessions; tracker fetch, secrets split, and squad doctor round out 0.2+.

Now with a visual console: npx squad-kit console

Node 18+ MIT licensed Works with Claude Code · Cursor · Copilot · Gemini
~/your-project — squad
$ squad init
 Initialized .squad/ · planner: anthropic · tracker: jira
  credentials saved to .squad/secrets.yaml (0600, git-ignored)

$ squad new-story checkout --id ENG-42
  fetching ENG-42 from Jira · title · description · 2 attachments
 wrote .squad/stories/checkout/ENG-42/intake.md

$ squad new-plan --api
  picker · intake · planner (claude-opus) reading repo files on request
 wrote .squad/plans/checkout/01-story-add-guest-checkout.md
  ~9 KB — ready for a cheap executor
How it works

Three steps. One artifact.

squad-kit separates the two things every SDD tool conflates: thinking and typing.

01 Human time

Write an intake

Raw story in

Scaffold a story folder. Use `squad new-story <feature> --id <ID>` to auto-fetch title, description, labels, and attachments from Jira or Azure DevOps — or `--no-tracker` for a manual intake.

$ squad new-story checkout --id ENG-42
→ .squad/stories/checkout/ENG-42/intake.md
02 Opus / GPT-5 tier

Plan once, expensively

The only expensive turn

Your strongest model reads the intake and requests repo files on demand (budget-enforced). Writes one concrete plan: paths, line ranges, type signatures, verification commands. Run inside your agent, or directly with `squad new-plan --api`.

$ squad new-plan --api
→ .squad/plans/checkout/01-story-add-guest-checkout.md
03 Haiku / 4o-mini tier

Execute cheaply, many times

Cheap model out

Fresh agent session. Attach only the plan file — no meta-prompts, no cross-artifact reads. A cheap executor ships the code.

$ # open a new chat, attach the plan file
→ done ✓
Philosophy

Stop paying top-tier tokens for typing work.

SDD has two phases every tool conflates: thinking (reading code, weighing tradeoffs) and typing (applying edits, running tests, wiring things up).

Thinking is expensive per token and benefits from the best model you have. Typing is verbose and repetitive — a weak model can do it, if the plan is concrete enough.

squad-kit is built around one rule: plan once, execute cheap. Every task in a squad-kit plan has a file path, a symbol or line range, a type signature or command. Vague guidance like "consider introducing a service layer" does not belong there — that's a planning decision, not a task. The direct planner (squad new-plan --api) does not change the math — the expensive model still plans once per story. It just shortens the path from intake to plan file.

1
artifact
per story
One plan file is the contract. No spec/plan/data-model/contracts/research/quickstart/tasks sprawl.
~5–15
KB
implementation context
vs 15–25 KB of framework boilerplate before your code is even touched.
40×
reuse
per feature
The cheap executor loops dozens of times. Every KB of saved context compounds.

A visual console for everything

squad console opens a local, dark-modern web UI on port 4571. Every CLI capability has a panel; the planner streams live over SSE. Redesigned for 0.6.0 — Vercel-inspired palette, command palette, keyboard shortcuts.

Dashboard with cache-hit ring and token sparkline
Live planner streaming with file-read ticker
Graphical squad doctor with PASS/WARN/FAIL chips

Run squad console from any squad-kit workspace to try it.

What's new · 0.6.0 + 0.5.0

Nine upgrades worth a release.

Same philosophy. Sharper tools. Zero breaking changes to your stories and plans.

0.5

Visual console

squad console launches a local UI for stories, plans, live planner runs, config, secrets, tracker, and doctor. Same workspace; same files; nicer surface.

$ squad console
0.4

Planner limits you control

When a budget bites, the CLI asks before more API spend. Incomplete runs save a .partial.md; clean runs keep short NN-story-<id> filenames. Higher default planner output cap.

$ squad new-plan --api
0.3

Prompt caching

Anthropic, OpenAI, and Google caching enabled out of the box. A 10-turn planning run bills ~70% fewer input tokens. Tier 1 Opus finally works for real repos.

$ squad new-plan --api
New

Direct planner

Run the strongest model from the terminal. Demand-driven context. Budget-enforced.

$ squad new-plan --api
New

Tracker auto-fetch

Pull title, description, labels, and attachments from Jira Cloud or Azure DevOps Services.

$ squad new-story auth --id ENG-42
New

Secrets split

.squad/secrets.yaml is 0600 and git-ignored. Config stays committable.

$ .squad/secrets.yaml
New

Health check

Full read-only probe. --fix makes only non-destructive repairs.

$ squad doctor
New

One-shot migration

Idempotent 0.1.x → 0.2.0 structural update. --dry-run first.

$ squad migrate
New

Safe deletion

Cascading cleanup with --dry-run and --trash for recovery.

$ squad rm story
Comparison

squad-kit vs Spec-Kit

Same problem, opposite philosophies. Pick the one that matches how you already work.

Plan-turn starting context
squad-kit
intake (~2 KB) + meta-prompt (~5 KB) + files planner requests on demand
Spec-Kit
spec.md + plan.md + constitution + /plan template + research
Implement-turn starting context
squad-kit
one plan file (~5–15 KB)
Spec-Kit
/implement template + tasks + plan + data-model + contracts + …
Artifacts per story
squad-kit
intake.md + NN-story-<slug>.md
Spec-Kit
spec + plan + data-model + contracts/ + research + quickstart + tasks
Direct-from-terminal planning
squad-kit
squad new-plan --api (Anthropic, OpenAI, Google)
Spec-Kit
agent-only
Tracker intake fetch
squad-kit
built in: Jira Cloud, Azure DevOps Services
Spec-Kit
not prescribed
Planning safety nets
squad-kit
none (trust the planner)
Spec-Kit
/clarify, /analyze, checklists
Customization
squad-kit
squad config · intakes · fork to change prompts
Spec-Kit
template override stack + presets
Runtime
squad-kit
Node + TypeScript · npm
Spec-Kit
Python 3.11+ · uv
Pick squad-kit when…
  • You trust your planner (Opus, GPT-5) and want lean implementation turns.
  • You already live in Node / TypeScript tooling.
  • You want prompts as plain files in your repo — editable, committable.
  • You run a cheap model for execution and want real savings.
Pick Spec-Kit when…
  • You want /clarify + /analyze to catch spec–plan drift automatically.
  • Your team includes non-engineers editing specs.
  • You're already in Python / uv tooling.
  • You want a governance / constitution layer built in.
Install

Sixty seconds from zero.

Requires Node 18+. No API keys. No telemetry. No background services.

$ npm install -g [email protected]
squad --version to verify · Upgrading from 0.1.x → · Full quickstart →
Agents

Native slash commands, four agents.

squad init installs a /squad-plan command into the agent you pick. Don't see yours? squad new-plan prints the composed prompt to stdout — paste it anywhere.

Claude Code
.claude/commands/squad-plan.md
Cursor
.cursor/commands/squad-plan.md
GitHub Copilot
.github/prompts/squad-plan.prompt.md
Gemini CLI
.gemini/commands/squad-plan.toml

One plan. A hundred turns. Real savings.

Install squad-kit. Write your first intake. Let your best model plan once. Then let the cheap one work.