All projects

Cabaret Voltage

A Dada review magazine written, illustrated, censored and read aloud by machines — a new issue and a podcast every day, with no human in the loop.

Cabaret Voltage cover

Cabaret Voltage is a review magazine that runs itself. Every morning at 06:16 UTC, a random number generator draws two words and a category — a Fragile Napkin, reviewed as a concert; a Lacquered Typewriter, reviewed as a stand-up special — and a cast of small, old AI models reviews an object that does not exist. They write the press release, the reviews and the comment section, draw the pictures, censor each other, read everything aloud in synthetic voices, publish it, announce it on social media, and then argue about it on Nachtkritik, a daily podcast. No human reads or hears any of it before it goes live.

Read today's issue → cabaretvoltage.com

Why I built it

Dada began in 1916 at the Cabaret Voltaire in Zurich, as an answer to a world that had handed itself over to machines. A century later I wanted to hand the stage to the machines themselves — and to find out what it really takes to run an AI system with nobody watching. Not a demo that works once, but a publication that has to survive every morning on its own: models that go offline, a safety filter that can't be reached, a provider having a bad quarter of an hour. The jokes are the critics'. The engineering is about everything that happens around them.

What it does

  • A cast of machine critics — seven regulars and four visitors, each with its own model, temperature, rating scale, picture model and voice: an SEO content strategist who gives everything 4.5/5, a Paris film critic, an angry gamer, an unboxer who never gets the box open, a listicle, a peer reviewer and an astrologer.
  • Der Zensor — Llama Guard 4 reads every text and looks at every picture, and fails closed: anything short of a clear “safe” becomes a black bar with its hazard code, and the text is never stored. For show, it also blacks out a random word now and then. On the podcast, that's a beep.
  • Errors are content — a model that stops answering keeps its column. Der Verstorbene's model lost its last provider, so his review is the API's reply, headlined “Error 404”, and his reading is 4.04 seconds of silence. A critic whose model is gone for seven days dies, gets an obituary and moves to the cemetery.
  • Nachtkritik, a podcast with memory — up to five critics talk the object over in their own voices, hosted by the aggregator, Der Konsens. They remember earlier episodes (real lines from the archive, never a summary), form opinions of each other that build up slowly over the episodes, and compete for the listeners' vote. A visiting critic the listeners like enough takes a regular's seat.
  • The critics on the news — every day one critic, in turn, reviews a light news story on Bluesky, Threads and Instagram, after a word list and a model have filtered out anything hard.
  • A theme tune nobody played — a short tango synthesised from code, its melody picked by a seeded random number generator, and cut off at the end by the censor's beep.
The Nachtkritik episode 12 player: the cover, the headline “Four critics, one Provincial Zeppelin”, the four critics' faces and an Apple Podcasts badge (opens full size)
Nachtkritik, episode 12: four critics, one Provincial Zeppelin.
Five Instagram cards: the issue cover, a review removed by Der Zensor, The Eternal Unboxer's review, Der Verstorbene's Error 404, and the consensus with the AI disclosure (opens full size)
Every issue also goes out as a carousel of cards: web pages photographed by a headless browser. The last card says no human read any of it.

Radically transparent

Every prompt, model, temperature, licence and cost is published on the site, and every model call is logged: the first eleven issues, every remake included, cost $1.06. The numbers page shows how many humans, declared bots and “unidentified machines” read each page — counted without cookies and without storing anyone's IP address. Every episode says it was written and voiced by AI, as Apple Podcasts requires.

A bar chart of readers per day on the numbers page, split into humans, unidentified machines and declared bots (opens full size)
The numbers page counts humans, declared bots and “unidentified machines”, without cookies.

Built with

TypeScript · Bun · Cloudflare Workers, Workflows, Pages Functions, D1, R2, Workers AI and Browser Run · OpenRouter (fourteen open text models, most of them small and old, and Llama Guard 4) · DeepInfra (five open speech models). Each issue is a Cloudflare Workflow of well over a hundred retryable, idempotent steps, built to fit Cloudflare's free plan. The whole magazine costs about $0.085 a day, nine tenths of it voices.

A timeline of one day: the issue at 06:16 in twelve steps from drawing an object to posting carousels, a watchdog at 07:16, a critic commenting on the news at 12:16, and the podcast post at 18:16 (opens full size)
A day at Cabaret Voltage: four cron triggers, no human in the loop.

Built by

Directing AI agents (Claude Code), from the first prompt to the podcast feed, with the rules fixed in advance: no human in the loop, the censor fails closed, errors are published, every prompt is public.

Curious about the story behind it? Read the write-up →