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.
- +00sform firedlead webhook · enrichment · timezone check
- +02sdial decisionscore ≥ threshold · dedupe pass · ok to call
- +04sagent dialingpstn out · ringing · ElevenLabs voice loaded
- +18squalifying4-question branched script · function-calls live
- +90sbookingcalendar.create · invite sent · slack ping
- +108sdispositionsummary · transcript · crm writeback complete
That distinction — script vs scaffold — turns out to matter way more than the actual agent inside.
What it does
The scaffold gives you:
- A scheduled job runner (cron + Modal)
- A Browserbase session pool with sane defaults
- A Claude Code harness with a
tools/directory you drop new skills into - A typed config (
agent.config.ts) that's the only file most people will ever edit - Eval scaffolding baked in from day one —
pnpm evalsruns the suite locally; CI runs it on every PR - A simple admin dashboard at
/adminshowing runs, costs, and failures
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
-
Cron-first, not chat-first. Most production agents I ship are scheduled, not conversational. v2 makes scheduled the default and conversational the opt-in.
-
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.
-
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
.tsfile with a default export. Diffing a tool change becomes trivial. Reviewing PRs becomes pleasant. -
Evals from minute one. The
initscript creates anevals/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). -
Dashboards over logs. Even for one-person projects. The cost of a
/adminpage is small. The cost of debugging "what did the agent do yesterday morning" without one is huge.
- 0hv2 · scaffolded
- 0hv1 · scripted from scratch
- 0hno scaffold · prior baseline
What I'd change
The next version is going to do two things differently:
- Default to two models in rotation — Opus for hard steps, Haiku for everything else. The cost difference is large and the quality difference, when scoped right, is invisible.
- Treat skills as installable packages — pull from a registry instead of putting them in
tools/. This is going to require some convention work, but I think the ergonomics are worth it.
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.
Owned, undistributed, and published only here — no newsletter, no funnel, no upsell.