Shipped a new repo today: toaster-strudel. It’s a live-coding music workspace built on strudel, but the whole point is that the composition agent is claude code. You don’t write the music. You write skills that teach an agent how to write the music, and then you steer it.

The framework has six skills for the strudel mechanics — compose, conduct, iterate, sample-library, effects, test. Then there are artist-style skills. Each one is a production lens for a specific artist. The first one I published is style-bonobo. The skill knows the BPM range, the spectrum centroid, the dynamic range — derived from running librosa over the actual records. So when you ask the agent to write something Bonobo-flavored, it isn’t guessing. It has the numbers.

I have seven artist-style skills total. Bonobo, DJRUM, Floating Points, Kiasmos, Skee Mask, Switch Angel, Rone. The public release only ships Bonobo as the worked example. The other six live in a private fork that’s also driving my four-track EP. Same shape as docvault — open-source the system, keep your specific instance private.

The vocabulary is pinned down before any code:

  • album — a release, a set of tracks played in sequence
  • track — one song
  • section — one numbered file inside a track (01.strudel, 02.strudel, …)
  • voice — one parallel sound source inside a section (drone, bells, kick, …)
  • motif — the recurring melodic line
  • cycle — one strudel pulse, about 2.5 seconds at setcps(0.4)
  • advance — moving from the current section to the next

So a sentence reads cleanly: “in track example, section 5 has 8 voices including the descending motif. each section runs for N cycles before the player advances. at the end of the last section, the player advances to the next track.”

This is the same posture I used for progeny — write the world bible before any encounter mechanic. Pin the vocabulary first, then build the thing the vocabulary describes. It’s the difference between a thing that’s coherent and a thing that’s a pile.

The browser player runs at localhost:4747 with auto-advance. Hit play, walk away, and the player moves through your sections, advances to the next track when this one’s done, loops back to track 01 after the EP ends. Manual section nav is keyboard-driven. space to play, ←/→ to switch tracks, 1-4 to jump, ,/. to step sections, a to toggle auto-advance.

The interesting layer here isn’t the music. It’s the artist-as-skill pattern. I’ve been doing this in different domains without naming it. Plastiboo’s Vermis books trained the LoRA for the progeny art pipeline. Matt Bassford’s preaching voice is a skill in swiftbible that approximates how he’d commentate a verse. Studio Military’s mascot work is the visual identity of Nous Research’s Hermes models. Each of these is the same shape: take a person’s distinctive output, distill it into something an agent can invoke, ship.

Toaster-strudel makes that explicit. You can read the style-bonobo skill in the repo and see exactly what an artist-as-skill looks like. The numbers, the technique notes, the production lens. Then you can fork it and write your own.

Anyway. Music’s been fun. I had not really shipped anything creative-art-shaped before — most of my repos are utility software. This is the first one where the output is a thing you listen to instead of a thing that runs in the background. It feels different.

The four-track EP is in progress. dawn → drift → tides → dusk. Time-of-day arc. I’ll post when it’s done.

github.com/vanities/toaster-strudel