One prompt. Multiple Claude workers. Parallel coding sessions that build entire modules simultaneously.
Quick Start Β· Examples Β· How It Works Β· MCP Tools Β· CLI Β· Roadmap
Claude Code is powerful but sequential. Claude Crew makes it parallel β auto-spawning worker sessions that build entire backends, frontends, and microservices simultaneously. One terminal, zero setup.
You: "Build a full-stack task manager"
ββββββββββββββββββββββββββββββββββββ
β Leader (your Claude session) β
β creates shared types β
β calls crew.fan_out β
ββββββββββββ¬ββββββββββββββββββββββββ
β auto-spawns
ββββββ΄βββββ
βΌ βΌ
worker 1 worker 2 β claude -p (ephemeral)
entire entire β each builds a full domain
backend frontend
β β
ββββββ¬βββββ
βΌ
ββββββββββββββββββββββββββββββββββββ
β Leader collects, type-checks, β
β smoke-tests, reports β
ββββββββββββββββββββββββββββββββββββ
β 2 workers Β· 0 failures Β· 4m 45s
Runtime: Bun v1.0+ and Claude Code v2.1+.
# Install
git clone https://github.com/jatingarg/claudecrew.git ~/claudecrew
cd ~/claudecrew && bun install
# Set up your project
cd /path/to/your/project
bun ~/claudecrew/cli.ts init # writes .mcp.json
bun ~/claudecrew/cli.ts up # starts orchestrator
# Go
claude --dangerously-skip-permissionsThen describe what you want to build. Claude Crew automatically fans out the work β no special keywords needed.
Tip: add an alias so you can type crew instead of bun ~/claudecrew/cli.ts:
echo 'alias crew="bun ~/claudecrew/cli.ts"' >> ~/.zshrc
source ~/.zshrcAll examples below use the crew alias. Without it, replace crew with bun ~/claudecrew/cli.ts.
Empty folder to working app in under 5 minutes. Tested, verified, working.
mkdir my-app && cd my-app
crew init && crew up
claude --dangerously-skip-permissionsBuild a task management app. Backend: Express API with TypeScript, CRUD endpoints for tasks (title, description, status, priority, due date), in-memory store. Frontend: React + Vite + Tailwind, pages for task list with filters, task detail view, and create/edit form.
What happens:
- Leader creates shared types
- Calls
crew.fan_outβ spawns 2 workers - Worker 1 builds the entire backend (Express, routes, store, middleware,
npm install) - Worker 2 builds the entire frontend (Vite, React, Tailwind, pages, components,
npm install) - Leader collects results, type-checks both, smoke-tests the API
- Working full-stack app with seed data, filtering, CRUD
Migrate this entire codebase from JavaScript to TypeScript. Add proper types, rename files, update imports, add tsconfig.json.
Workers split by module β each migrates a different directory simultaneously. What normally takes 2+ hours finishes in 15 minutes.
Review all open pull requests on this repo. For each PR: read the diff, check for bugs and security issues, leave a summary comment with actionable feedback.
Each worker reviews a different PR in parallel. Clear a 20-PR backlog while you grab coffee.
Build an e-commerce system with 3 microservices: user-service (auth + profiles), product-service (catalog + search), order-service (cart + checkout). Each is a standalone Express app. They communicate via REST. Include a docker-compose.yml.
Each worker builds an entire microservice. They actually communicate when you run docker-compose up.
Write comprehensive tests for every module in this project. Unit tests for utilities, integration tests for API routes, component tests for React components. Target 80%+ coverage.
Workers split by directory. Go from 0% to 80%+ coverage in a single run.
One prompt β 5 parallel workers β microservices that talk to each other
An orchestrator daemon runs on localhost:7900 (SQLite for state). The MCP server exposes crew.* tools to your Claude session.
When crew.fan_out is called:
- Creates a job in the orchestrator
- Spawns ephemeral
claude -pprocesses β one per subtask - Each worker runs with
--bare --dangerously-skip-permissions(fast startup, no prompts) - Workers execute, output JSON results, and exit
- MCP server captures output and reports to the orchestrator
βββββββββββββββββββββββββββββ
β Orchestrator daemon β
β localhost:7900 + SQLite β
ββββββββββββ¬βββββββββββββββββ
β
MCP server (stdio)
in your Claude session
β
ββββββββββββΌβββββββββββ
β β β
claude -p claude -p claude -p
worker worker worker
Workers are ephemeral β execute, report, exit. The leader orchestrates everything.
- Domain-level splitting β workers get entire modules ("build the whole backend"), not individual files
- 2-4 big subtasks β not 10 small ones. Each worker is a full Claude instance
- Zero config β MCP server auto-launches the orchestrator, workers inherit your Claude auth
- File claiming β orchestrator prevents concurrent edits to the same file via SQLite mutex
| Tool | Description |
|---|---|
crew.fan_out |
Split a task into 2-4 domain-level subtasks, spawn parallel workers |
crew.status |
Check progress β which workers are done, running, or failed |
crew.collect |
Gather results from all workers when the job completes |
crew.cancel |
Cancel a job and kill all running worker processes |
| Parameter | Required | Default | Description |
|---|---|---|---|
task |
Yes | β | High-level task description |
subtasks |
Yes | β | Array of { description, files? } β each an entire domain |
context |
No | β | Shared context for all workers (types, conventions, API contracts) |
timeout_seconds |
No | 300 |
Per-worker timeout |
max_workers |
No | 5 |
Max concurrent worker processes |
model |
No | system default | Model for workers (e.g. "sonnet" for cost savings) |
With the crew alias (see Quick Start):
crew init # set up .mcp.json in current project
crew up # start orchestrator daemon
crew down # stop orchestrator daemon
crew status # orchestrator health + job count
crew jobs # list all jobs
crew job <job_id> # detailed subtask status
crew cancel <job_id> # cancel a running jobWithout the alias, use bun ~/claudecrew/cli.ts instead of crew.
| Variable | Default | Description |
|---|---|---|
CREW_PORT |
7900 |
Orchestrator HTTP port |
CREW_DB |
~/.claudecrew.db |
SQLite database path |
claudecrew/
βββ server.ts # MCP stdio server β exposes crew.* tools, spawns workers
βββ orchestrator.ts # HTTP daemon on :7900 β tracks jobs, subtasks, file claims
βββ store.ts # SQLite schema and data access layer
βββ cli.ts # CLI for init, daemon management, job monitoring
βββ shared/types.ts # Shared TypeScript types for orchestrator API
Now β core auto-spawn works. One prompt fans out to parallel workers that build entire domains.
Next
- Dependency ordering (
depends_on) β "build pages" waits for "scaffold project" - Shared context / memory β workers can read what other workers have built
- Error recovery β auto-retry failed workers before marking failed
- Live progress streaming β see worker output in real-time
Later
- Multi-stage pipelines β sequential stages with parallel workers within each
- Git worktree isolation β each worker gets its own branch, leader merges
npx claudecrew initβ zero-install setup via npm- Web dashboard β live UI showing worker progress, logs, and cost
- Remote workers β fan out across machines via SSH
- Bun v1.0+
- Claude Code v2.1+
- Claude login (
claude auth login) β workers use your account
PRs welcome! Built with Claude Code + Claude Crew (yes, we used it to build itself).
