$ backgroundclaude
comparison

DIY cron + headless vs. Cyrus

A brutally honest comparison of the two ways to run Claude Code in the background. Written by people who've built both — so we know exactly which parts hurt.

Short version: DIY is free and infinitely flexible, which is exactly what you want for the first three cron jobs and exactly what burns you on the tenth. Cyrus is opinionated, ships the scaffolding, and stops being opinionated at the BYOK boundary. It runs in three flavors — Community self-hosted (free forever), paid self-hosted, or fully managed cloud — so the choice isn't “vendor lock-in or nothing.”

Dimension
DIY cron + headless
Cyrus
Time to first run
~30 min of cron + shell scripting
Minutes. OAuth Linear, install, assign an issue.
Isolation between runs
You write it. flock + working dirs + branch discipline.
Git worktrees per run, automatic. Zero branch collisions.
Approvals mid-run
Not possible. The prompt either runs to completion or doesn't.
Rich interactions. Dropdowns, confirmations, blocking questions.
Budget enforcement
Per-run via --max-budget-usd. Per-team? You write it.
Per-run and per-team, managed.
Audit trail
stderr files in /var/log somewhere. Grep your way to answers.
Streamed event log per run, posted back to the issue as it happens.
Linear two-way sync
Linear webhook → your handler → state machine → updates back. Weeks.
Built-in. Assign an issue, get a PR, state moves automatically.
Multi-channel (Linear + Slack + GitHub + GitLab)
Each channel is its own integration project.
All in, same agent, different inboxes.
Multi-model (Claude, Codex, Cursor, Gemini)
You abstract it. Probably after the second provider.
BYOK. Swap models per run or per workspace.
Observability
Your SIEM, your dashboards, your pager duty.
Managed dashboard + streamed events.
Hosting flavors
One: your machine. You own every layer.
Three: Community self-hosted, Paid self-hosted (Cyrus cloud handles integrations, your machine runs the agent), or Paid cloud.
Cost, 1 engineer / week
Free + your time. Plus Claude API usage.
Community plan is free forever, BYOK. Pro/Team for managed.
Cost, 10 engineers / week
Free + ~½ eng maintaining it.
Pro/Team plan + BYOK API. Pays for itself against that ½ eng.
Flexibility
Infinite. You can do anything, including the wrong thing.
Opinionated. Opinions are what keep you out of trouble.
Debuggability when it breaks at 3am
You ssh in, tail logs, grep for clues.
Open the run in the dashboard, see the streamed events.
when DIY wins

You're the only user. Always.

DIY is the right call when nobody else will ever run your automation. One engineer, one repo, one machine, one prompt. Cron fires, Claude does the work, you read the log in the morning.

The moment a second human needs to see a run, approve a run, or debug a run, you've crossed into infrastructure territory. And infrastructure that's half-built is worse than infrastructure that doesn't exist yet.

when Cyrus wins

Your issue tracker is the schedule.

The instant you want Claude Code to act on Linear issues — or Slack messages, or GitHub comments, or any human-triggered event — Cyrus is the boring, working version of the system you were about to build.

The hard parts are solved: OAuth, webhook signatures, worktree isolation, streaming run events back to the issue, cancellation, approvals, multi-repo routing. They're not glamorous. You'll hate writing them. Cyrus already did.

the honest part

This whole site is published by the Cyrus team.

You caught us: Background Claude is built and maintained by the people behind Cyrus. Which is exactly why the comparison above is fair rather than fawning. We built the DIY path first. We know where it breaks, because we broke it, on purpose, every way we could think of. Cyrus is the lessons from that, hardened.

If you're a solo engineer with one overnight refactor, please go read the headless guide and ship it yourself. If you're a team and a second human ever needs to know what the agent did last night, Cyrus is the shortest path between “good idea” and “production.”

further reading

Go deeper

Pick a row above. If Cyrus wins two in a row for you, skip the scaffolding.