Before you start
How to run Claude Code unattended overnight
This tutorial
What you’ll do: clear an unblocked backlog unattended, a few issues at a time. cckit orchestrates parallel worktrees and drives each issue through to merged. You always dry-run first so you can see the launch plan before anything is created, then let it run and only get pinged on a genuine blocker.
-
Read the board, then pick the work. Have Claude sync the board first and show you what’s ready — you choose which issues run, rather than naming numbers up front.
Prompt to paste Read the board and show me what's unblocked right now. I'll tell you which of those to run inparallel. Show me the launch plan before anything is created, then run them a few at a time.Terminal window cckit sync --llm # read the board; decide from what's actually ready -
Dry-run, then launch with a cap. Pass the issues you picked (a dry-run creates nothing):
Terminal window cckit orchestrate --dry-run <issues…> # resolve + print the launch plan; create nothingcckit orchestrate --cap 3 <issues…> # launch, at most 3 concurrent; the rest queue -
Or let autopilot pick the work. For a fully unattended run, autopilot auto-selects ready issues itself — no numbers to name:
Terminal window cckit autopilot --cap 3 # auto-pick unblocked issues and drive them throughPrompt to paste Clear the unblocked backlog unattended, a few at a time. Sync the board, auto-pick what's ready,and drive each to merged. Only stop and ping me on a genuine blocker — otherwise summarize whatmerged.
How it works
Section titled “How it works”orchestrate takes a specific set of issue numbers and runs them in isolated worktrees, capped so
only N run at once and the rest queue. autopilot is the hands-off version: it picks the next
unblocked issues itself and keeps going. The dry-run is the safety rail — it resolves the plan and
prints exactly what would launch without creating a single branch, so you approve the shape before
committing to it.
Troubleshooting
Section titled “Troubleshooting”It stopped on a blocker. That’s by design — unattended runs ping you only on a genuine blocker rather than guessing. Resolve it, then re-run; the merged work isn’t repeated.
Too many worktrees at once. Lower --cap. A smaller cap trades wall-clock for less load and
fewer merge conflicts on a busy repo.
A queued issue never started. It was blocked by one still in flight. cckit sync shows what’s
gating it; it starts automatically once its blocker merges.
Related tutorials
Section titled “Related tutorials”Independent, educational project — not affiliated with or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic PBC. Disclaimer & trademarks ·
From Mexico with love by josegtz