Skip to content

How to run Claude Code unattended overnight

Do this with Claude CodeCopy a prompt that links the cckit docs so Claude learns the CLI, then follows these steps.

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.

  1. 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 in
    parallel. 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
  2. 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 nothing
    cckit orchestrate --cap 3 <issues…> # launch, at most 3 concurrent; the rest queue
  3. 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 through
    Prompt 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 what
    merged.

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.

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.

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