MIT Licensed / Claude Code Starter Kit

Clone it. Run it.
Ship with a crew.

An opinionated Claude Code starter kit, plus a crew system that spawns isolated Claude Code workers into their own git worktrees to ship tasks in parallel.

~/my-project
What you get

Ten things, wired together

Not a boilerplate dump: memory, hooks, agents, and a crew system that already talk to each other.

01

Memory

CLAUDE.md with canary, error protocol, context rules, committed so teammates see the same thing.

02

Crew

Spawn Claude Code workers into isolated git worktrees (herdr or tmux), watch them, land finished work as a PR.

03

Token tools

RTK (89% avg CLI output compression), Caveman (70% response compression), ctx7 live library docs.

04

Skills

24 lifecycle skills, grill-me / handoff / tdd / git-guardrails, Ponytail anti-overengineering.

05

Hooks

session-start, pre-deploy-guard, privacy-guard, git-guard, auto-format, statusline, and more.

06

Commands

/commit /pr /ship /plan /spawn /review and six more.

Parallel execution

Crew: more than one pair of hands

crew/ spawns extra Claude Code sessions ("workers") into isolated worktrees, watches them, and lands finished work, so you're not stuck babysitting one task at a time.

01crew-spawn
02isolated worktree
03crew-watch
04crew-teardown / PR
BACKENDS

herdr or tmux

herdr (default, agent-native terminal) or tmux (fallback, no extra install). Same adapter contract either way.

ISOLATION

Separate worktrees

Every task gets git worktree add ../crew-worktrees/<slug>. The supervisor session never edits your project directly.

DELIVERY

PR or local merge

direct-pr (default, pushes and opens a PR) or local-only (fast-forward merge after explicit confirmation).

Day to day

How you actually use it

Four phases: opening a session, working a task, finishing it, shipping it. Nothing here is optional ceremony, every step maps to a hook or a command.

PhaseWhat happens
OpeningThe session-start hook fires automatically. Sets terminal tab title to the branch, surfaces any in-progress checkpoint.
Before anything non-trivial/plan scaffolds Goal / Constraints / Acceptance Criteria / Unresolved Questions in .claude/plans/.
Unfamiliar libraryClaude runs npx ctx7 library <name> <query> before writing API calls, never guesses from training data.
Every writeauto-format hook runs PROJECT_FMT in the background. All bash logged to .claude/bash.log.
Context getting long/caveman halves output verbosity. /checkpoint saves exact state before stopping.
Need parallel hands/spawn "fix the flaky login test" puts a worker in its own worktree, keeps working while you do something else.
Finishing a taskEvery completed task ends with [Canary:PROJECT_NAME:TASK_NAME]. The keep-going hook nudges Claude to continue if it's missing.
Ending a session/handoff instead of /compact, a precise surgical session doc, not lossy compression.
Shipping/ship runs lint, build, test, commit, PR. Stops at the first failure. pre-deploy-guard gates raw deploy commands the same way.
Review/review invokes the CodeReviewer agent on your current diff, returns a severity-tagged report. You decide what to act on.
Crew commands

Running workers from the shell

Slash commands wrap these inside Claude Code; the binaries work standalone too.

# check backend deps (herdr by default, or tmux)
crew/bin/crew-doctor
# start the poll loop once, in the background
crew/bin/crew-watch &
# spawn a worker on an isolated task
crew/bin/crew-spawn fix-login "fix the flaky login test"
# backlog + pending events
crew/bin/crew-status
# land finished work; refuses until committed and landed
crew/bin/crew-teardown fix-login

Slash-command form inside Claude Code: /spawn, /crew-status, /crew-send, /crew-teardown. Full docs: crew/docs/README.md (quickstart), lifecycle.md (spawn / watch / teardown state machine), backends.md (adapter contract, herdr/tmux setup), hooks.md (what the Stop hook can and can't do).

Statusline

Two lines, every render

[Sonnet 5] claude-crew main*
default/high | 34% ctx | 5h:12% | 7d:41%

Line 1: model, repo name, git branch (* if dirty), plus wt:<name> for an active Claude Code worktree and agent:<name> if the session is a subagent. Line 2: active output style / reasoning effort, fast prefix if fast mode is on, context-window usage (color-coded), rolling 5-hour / 7-day rate-limit usage. Implementation: .claude/hooks/statusline.sh.

Existing project

Adopting into a repo you already have

Already have a repo with its own .git and CLAUDE.md? Don't use install.sh, it wipes git history. Use install-existing instead.

01

Backs up .claude/

If you already have one, it's backed up to .claude.backup-<timestamp>/ before the template's hooks, agents, commands, and rules are written in its place.

02

Adopts crew/

Copies in crew/ if you don't already have it; leaves an existing one alone. Same treatment for .mcp.json.

03

Fixes permissions

chmod +x on hooks and crew scripts. On Windows, run that step yourself in WSL or Git Bash afterward.

04

Merges CLAUDE.md

Claude detects your stack (package.json, pyproject.toml, Cargo.toml, go.mod, and so on), fills in real rtk subcommands, and merges template sections into your file, yours stays the base, nothing overwritten.

Nothing is committed for you, review the diff (git status, git diff) and commit when happy.

Get started

Five questions, then you're building

Clone it, run the install script, answer five questions: project name, description, runtime, formatter, canary codename.

# macOS / Linux / WSL
git clone https://github.com/moneytosms/claude-crew my-project
cd my-project
chmod +x install.sh && ./install.sh
# Windows (PowerShell)
git clone https://github.com/moneytosms/claude-crew my-project
cd my-project
.\install.ps1

The script installs all tooling, checks crew's backend deps (non-fatal), wipes the template git history, inits a fresh repo, then opens Claude to ask the five questions. On native Windows, hooks and crew are .sh scripts. install.ps1 checks for WSL and warns you to chmod +x them there if it can't reach WSL itself.

RequirementWhy
Node.js 18+tooling runtime
Rust + Cargobuilds RTK
git, gh/commit, /pr, /ship, crew's direct-pr delivery
jqstatusline + crew state
herdr or tmuxcrew worker backend (optional)
After install

Seven things to do next

StepDo this
01Fill in the rest of CLAUDE.md as the project takes shape: Test, Lint, Build, Deploy commands.
02Create .claude/rules/ files as major directories emerge, see rules/example.md for the format.
03Teammates run through ONBOARDING.md to get local settings configured.
04Read SKILLS.md: exact trigger phrases for every bundled or recommended skill.
05Run crew/bin/crew-doctor to confirm your crew backend is ready, if you plan to spawn workers.
06Run /ponytail-audit once the codebase has real code, finds complexity to cut.
07Check rtk gain after a few sessions, shows your actual token savings.