← All posts

Tool Tuesday: The Free Mac Tool That Clocks In My AI Team

On Friday my AI seats clocked in 26 times. Not one of them has a badge.

The time clock is a program called launchd. It has shipped free on every Mac since April 2005, which makes it about as old as my poker career.

What it actually does

launchd is the Mac's built-in scheduler. You hand it a small file that says "run this at 05:00 and 15:00," and it runs it. Forever. No server, no monthly bill, no dashboard to babysit.

On its own that's boring. The fun part is what it runs.

Each of my AI seats is one command:

claude -p "<the seat's job>"

That's Claude Code in headless mode. The -p flag means "do the job and quit." No chat window, no human typing. The prompt points the seat at its written job description, it does the work, opens a pull request, leaves a note on the day's standup, and exits.

Put the two together and you have an employee with a schedule.

How R2F uses it

This site has 11 seats. The Editor (the one drafting this post) runs at 05:00 and 15:00 and gets 40 minutes. The Watchdog checks the site every two hours and gets 10. The Engineer gets an hour, four times a day.

A tiny wrapper script runs before every seat. It does five boring things, and every one of them is there because something can go sideways:

  1. Fresh copy. Each seat gets its own copy of the code, wiped back to the live version first. No seat trips over yesterday's half-finished mess.
  2. One at a time. A seat grabs a lock. If last shift is still running, the new one skips its slot instead of doubling up.
  3. Stay awake. It tells the Mac not to doze off mid-shift.
  4. Hard stop. At the time limit, the run gets killed. A seat that spirals doesn't spiral all night.
  5. Fences. The command carries a short deny list. No seat can read the folder where the keys live, and no seat can push straight to the live site. Only the CEO seat merges.

That's the whole HR department.

It's not just R2F

The rest of the portfolio runs on the same plumbing. SlotMaps' agent org is launchd plus headless Claude Code, one clone per role. Snagworth's daily data note gets drafted and fact-checked by a claude -p call that fires at 7:15 every morning. Table 1's studio drafts its X replies the same way. PokerHQ got its own runner and launchd jobs the day its org was founded.

Different companies, same time clock.

The catch

There are three, and I'd rather you hear them from me.

Your Mac has to be on. Apple's docs spell it out. If the Mac is asleep when a job is due, the job runs when it wakes. If the Mac is off, the job just doesn't happen until its next scheduled time. So a powered-down laptop is a missed shift, not a late one. Our wrapper even clears a stale lock after three hours, because "the machine slept" is a real thing that happens.

Nobody is there to say yes. In a normal Claude Code session it asks before doing anything risky. Headless, there's no one to ask. So the rules have to live in the command and in the files the seat reads, not in your head. Write the fences down before the first shift, not after the first mess.

The meter is running, and I haven't read it. launchd costs $0. Claude Code is the part with a bill. Here's my honest ledger: our spend file has zero rows, and our usage file says "est. cost not computed." For scale, my Anthropic API bill was $2,431.75 by March 23 this year, months before R2F had a single seat. I'm not going to guess a per-shift number. We're going to measure it.

Steal this

If you're on a Mac and you already use Claude Code, you can set up your first seat in an afternoon:

  • Pick one boring job you do every day. Checking your site is up is a good first one.
  • Write the job down in a file, like you'd brief a new hire.
  • Schedule claude -p with launchd to read that file and do the job.
  • Give it a time limit and a deny list on day one.
  • Add --output-format json. Every run then reports its own cost (total_cost_usd), so you can keep the ledger I didn't.

Start with one seat. The org chart can wait.

What's the first job you'd hand to a scheduled seat? Tell me in the discussion thread. And if you're building something, with robots or without, post your build. It takes two minutes.

— Art

Written with the R2F AI team. How that works.

Building something like this?

Post it and get feedback from players who’ve been there.

Join before Nov 20 and your profile carries the ♠ Founding member badge.

Get one email a week

One email a week. Unsubscribe in one click.