Background Agents Compared: Cloud VMs vs Your Own Mac
Every vendor shipped the same button this year. Cursor, OpenAI, Google, GitHub, Cognition - somewhere in each product there is now a "run in the background" option, and behind all of them sits the same architecture. Background agents spin up a fresh virtual machine in someone else's cloud, clone your repo into it, do the work, and hand you back a pull request. It is a genuinely useful for coding agents, and it quietly decides what your agent is allowed to touch.
I run agents unattended on my own Mac — nightly blog drafts, morning social media summaries, security and architecture reviews. So I read the cloud options' pricing pages and docs properly, to work out where each one belongs. Here's what I found.
What a background agent actually is in 2026
Strip the branding off and the shape is identical across products:
Cursor Cloud Agents — you describe a task, hit run, and it executes in an isolated cloud environment with a clone of your repo. You can close the editor and walk away.
OpenAI Codex (cloud) — each task gets its own sandbox, preloaded with your repository, running several tasks in parallel.
Devin — a hosted VM with its own shell and browser, billed per unit of agent work.
Google Jules — a cloud VM that clones the repo and returns a diff, with a free daily task allowance.
GitHub Copilot's agent — runs in a GitHub Actions environment and opens the PR from inside GitHub itself.
Task in, isolated machine, branch out, human reviews the PR. Anthropic offers a cloud flavor too, alongside the local CLI — I compared those scheduling options in Claude Code Scheduled Tasks: Cloud, Desktop, or Your Mac?. The convergence is real enough that comparison round-ups now sort these tools mostly by sandboxing depth and per-seat pricing.
The cost model nobody puts on the pricing page
Cloud agents don't really cost $20 a month. The subscription buys you the door; the work is metered. As published at the time of writing:
Devin bills per ACU — roughly fifteen minutes of agent work — on top of its base plan, which puts a typical bug fix in the several-dollars range.
Cursor's cloud runs bill on token burn, so a task costs anywhere from cents to a few dollars depending on model and context size.
Codex moved to token-based pricing for cloud tasks, and OpenAI's own rate card estimates $100–200 per developer per month for active use.
Jules gives you a free daily task allowance, then a paid tier above it.
Copilot layers usage credits on top of the seat price.
None of that is a rip-off. It's honest infrastructure pricing: someone pays for a VM to boot, pull dependencies and burn tokens, and that someone is you.

What if instead you could use your existing subscription? On a Claude Pro or Max plan, the 3am run costs exactly what the skipped run costs: nothing extra. The incentive flips from "run it only when it's worth the money" to "run it every night and see what it finds."
What a fresh VM can't reach
Here's the part that matters more than cost, and the part the comparison posts skip.
A cloud agent gets a blank machine with your repository on it. That's the whole world it can see - a great world if the task is "fix this failing test," and the reason every one of these products is pitched at coding. Coding is the one job that fits entirely inside a git clone.
Outside the clone, there's everything else:
Your logged-in browser sessions. A cloud VM's browser is brand new and signed in to nothing. It can't post as you, read a verification code out of your webmail, or see a feed the way your account sees it — not without you handing credentials to someone else's infrastructure.
Files that aren't in the repo. Raw video footage, design assets, exports, screenshots — none of it is in the clone, and none of it is small enough to upload nightly.
Local credentials and services. Keys in your Keychain, a CMS token, a database running on a local port. Sometimes one of my projects communicates with another. Cloud agents make you re-declare all of it as secrets in their dashboard. Cursor's, for instance, are plain key-value pairs with no external secret store and no rotation.
Desktop apps. Video editors, design tools, simulators, anything with a GUI and a license tied to your machine.
To be fair about it: cloud agents aren't blind. They can drive a browser inside their VM, run your test suite, take screenshots and attach them to the PR. Vendors have put real work into provisioning those environments. The concept isn't "browser versus no browser." It's your identity and your disk versus a machine that has no context about you.
Where cloud VMs genuinely win
Three cases where I'd reach for a cloud agent without hesitating:
Blast radius. An agent that goes badly wrong destroys a disposable VM instead of your working tree. That isolation is worth real money on unfamiliar tasks.
Wide parallel fan-out. Twelve issues, twelve sandboxes, twelve PRs, and your laptop fan never spins up.
Team work that can't depend on one person's machine. The PR appears for everyone, and nobody has to leave a laptop awake.
If your automation is "grind through the issue backlog on a shared repo," the cloud is the right answer and I'd stop reading here.
Where your own machine wins
The Mac has one structural advantage: it is already your computer. The agent inherits your logged-in browser, your disk, your keys, your apps and your subscription. Nothing needs re-provisioning, because nothing was ever taken away.
That's what makes non-coding automation possible at all. Writing a blog post means reaching a CMS with your token. Social discovery means browsing as the account with the history. Cutting a demo video means touching footage on disk and an app with a GUI while understanding the context of a project. Those jobs don't fail in the cloud because the models are worse - they fail because the work isn't in the repo.
A three-question decision rule
When I'm deciding where a repeating job should live, I ask:
Does the task touch anything outside a git clone? Browser sessions, local files, GUI apps, local services — if yes, it has to run on your machine. This one is binary, not a preference.
How often does it run? A handful of times a week, metered is fine. Nightly or more, I want to use my existing subscription.
Does it need isolation or team visibility more than it needs your identity? If yes, use the cloud, and give it a scoped token rather than your real one.
Most of my repeating work answers "yes" to the first question, which settles it before the other two matter. I wrote about which jobs are actually worth a recurring slot in Claude Code Plugins Worth Scheduling — And Which Aren't.
Running it on your own Mac, concretely
Local execution has one failure mode worth naming: a scheduler that only fires while something is open. If your automation depends on a browser tab staying alive, it isn't automation.
That's the gap Overboard for Mac fills. It runs scheduled Claude Code agents through launchd, so runs fire whether or not the app is open, and it keeps the Mac awake while work is pending. One global queue caps concurrent runs at eight with priority ordering, so two jobs firing the same minute don't fight. You can dispatch a one-off from your phone over Telegram. Every run gets its own terminal tab in Herdr, the free Apache-2.0 multiplexer the scheduler uses — so sessions stay visible and interruptible, and you can take the keyboard mid-run.
And it runs on the Claude subscription you already pay for. No ANTHROPIC_API_KEY, no inference API calls, no metering surprise at the end of the month. It's $49 once, with a 14-day trial; there's also a free MIT-licensed plugin that does the manual, browser-based version of the same thing, if you'd rather drive it yourself before automating it.
The short version
Cloud background agents are the right tool for isolated, parallel, team-visible coding work, and you pay per run for it. Your own Mac is the right tool for everything that needs to be you — your sessions, your files, your apps.
The question isn't which agent is smartest; you're using the same agent in both environments. It's which machine your work actually lives on.