Ecosystem/16cc-taskrunner

cc-taskrunner

GitHub: Stackbilt-dev/cc-taskrunner · Apache-2.0

Part of the Stackbilt ecosystem. Autonomous task queue for Claude Code with safety hooks, branch isolation, and automatic PR creation. Integrates with Charter CLI’s charter blast for blast-radius gating before any change touches code.

Queue tasks. Go to sleep. Wake up to PRs.

$ ./taskrunner.sh add "Write unit tests for the auth middleware"
Added task a1b2c3d4: Write unit tests for the auth middleware

$ ./taskrunner.sh --max 5
[09:15:00] cc-taskrunner starting
[09:15:01] ┌─ Task: Write unit tests for the auth middleware
[09:15:01] │  Branch: auto/a1b2c3d4
[09:15:01] │  Starting Claude Code session...
[09:17:42] │  Pushing 3 commit(s) to auto/a1b2c3d4...
[09:17:44] │  PR created: https://github.com/you/repo/pull/42
[09:17:44] └─ COMPLETED

Why It Exists

Claude Code is powerful in interactive sessions but has no built-in way to:

  • Queue tasks and run them unattended (overnight, during meetings, in CI)
  • Isolate changes on branches so autonomous work never touches main
  • Block dangerous operations when nobody’s watching
  • Create PRs automatically so you review diffs, not raw commits

cc-taskrunner fills that gap — the execution layer between “Claude can write code” and “Claude can ship code safely.”


Setup

Requirements: bash, python3, gh CLI, claude CLI, git.

git clone https://github.com/Stackbilt-dev/cc-taskrunner.git
cd cc-taskrunner

# Add a task
./taskrunner.sh add "Your task description"

# Run up to 5 tasks
./taskrunner.sh --max 5

# Run in continuous loop mode
./taskrunner.sh --loop

Tasks are stored in a queue.json file. Each task runs on its own auto/{task-id} branch and creates a PR when complete.


Safety Hooks

Pre-flight bash hooks run before Claude Code starts each task. Hooks can inspect the task description and abort before any code is written. Built-in integrations:

  • charter blast — Charter CLI’s blast-radius gate. Estimates scope of change before dispatch. Blocks tasks that exceed configured risk thresholds.
  • Operation blocklist — hooks block destructive shell operations (rm -rf, force-push, --no-verify) at the OS level rather than relying on prompt discipline alone.

cc-taskrunner vs. Claude Code Routines

In April 2026 Anthropic shipped Claude Code Routines — saved configurations that run on Anthropic’s cloud infrastructure on a schedule, API trigger, or GitHub event. Both tools have a place:

cc-taskrunner Claude Code Routines
Where it runs Your machine Anthropic-managed cloud
Trigger Manual / 1-min polling loop Schedule (1h min), API, or GitHub event
Local filesystem Full access Cloned-repo only
Runs while laptop is closed No Yes
Queue management JSON file, dependencies, FIFO One prompt per routine
Branch isolation auto/{task-id} per task claude/*-prefixed branches
Pre-flight safety hooks Bash hooks, blast-radius gate Permission-mode-less by design
Setup bash + python3 + gh + clone claude.ai account

Use cc-taskrunner when: you need queue management, sub-hour polling, local filesystem access, or hook-level safety enforcement.

Use Routines when: the work fits a single repeating schedule/event trigger and needs to run while your machine is off.


Honest Disclosure

Stackbilt currently runs taskrunner in paused mode and uses Routines for several scheduled workloads (autonomous heartbeat triage, weekly cross-repo pattern scans) — because those workloads fit the routine substrate better. Both tools are complementary. If you’re starting fresh and your work fits the schedule/event model, try Routines first. If you need queue management, sub-hour polling, or local filesystem access, taskrunner is the right tool.