back to writing
May 4, 2026·7 min read·builds open-source agents

Weekend Agent v2 — the build.

An open-source scaffold for shipping a real Browserbase + Claude Code agent on a cron, in under 4 hours. Here's how it works, and why it's the smallest useful artifact in agent-land.

The first version of Weekend Agent took me a Saturday. The second took two.

The difference between v1 and v2 is small but important: v1 was a script that worked. v2 is a scaffold that survives the second person who clones it. The kind of repo where you can git clone, change a config file, and have an agent running on a cron within four hours — without needing to know how the inner loop is wired.

step 1 of 6
+00s
  1. +00s
    form firedlead webhook · enrichment · timezone check
  2. +02s
    dial decisionscore ≥ threshold · dedupe pass · ok to call
  3. +04s
    agent dialingpstn out · ringing · ElevenLabs voice loaded
  4. +18s
    qualifying4-question branched script · function-calls live
  5. +90s
    bookingcalendar.create · invite sent · slack ping
  6. +108s
    dispositionsummary · transcript · crm writeback complete
// git clone → first cron run · live trace · happy path under four hours

That distinction — script vs scaffold — turns out to matter way more than the actual agent inside.

What it does

The scaffold gives you:

A new agent starts as a 60-line config file. Add new tools by dropping .ts files into tools/. The runtime auto-discovers them.

The five decisions that mattered

  1. Cron-first, not chat-first. Most production agents I ship are scheduled, not conversational. v2 makes scheduled the default and conversational the opt-in.

  2. Browserbase, not local Chrome. Headless Chrome on your laptop is a research tool. Browserbase is a production tool. The difference is reliability across model versions, which matters more than people expect.

  3. Tools as files, not as code. I used to write tool definitions as JS objects inside the agent file. v2 puts every tool in its own .ts file with a default export. Diffing a tool change becomes trivial. Reviewing PRs becomes pleasant.

  4. Evals from minute one. The init script creates an evals/ directory with one passing case and one failing case, so you immediately have a habit of adding to it instead of writing the suite later (you won't).

  5. Dashboards over logs. Even for one-person projects. The cost of a /admin page is small. The cost of debugging "what did the agent do yesterday morning" without one is huge.

Time to first cron run · v1 vs v2 · same operator
  • v2 · scaffolded
    0h
  • v1 · scripted from scratch
    0h
  • no scaffold · prior baseline
    0h
// The scaffold removes ~85% of the wall-clock between 'I have an idea' and 'something is running on a cron without me.'

What I'd change

The next version is going to do two things differently:

The repo is open. Fork it, change agent.config.ts, set your env vars, and run pnpm dev. If you ship something with it I'd love to hear about it.

Bi-weekly essays

Owned, undistributed, and published only here — no newsletter, no funnel, no upsell.

All essays
‹ all essays

Let's build
something joyful.

Agents · Engineering · Talks · Podcasts · Interviews · Automations.