poptart stopped · nothing plays until you press Play

// Hermes Strudel Studio · catalog id hermes-strudel-studio · v0.2.5

A local Strudel live-coding studio: write patterns, hit Play, and let your Hermes agent compose alongside you.

toy a 16-step pattern on this page, made with Web Audio. It isn't poptart, it borrows the idea: edit, press Play, watch the tokens light up.

bd
sd
hh
blip

section "Why poptart"

Strudel is a fantastic way to make music in code. poptart turns it into a workspace: tracks that persist, revisions that guard against overwrites, sections you can switch between, and a clean agent API.

Your Hermes agent can draft a beat, add a break or change the tempo. You stay in control, because nothing plays until you press Play.

// built on Strudel by the TidalCycles community · AGPL-3.0-or-later

section "Main"

  1. + Live-coding Strudel/JS editor with tempo, Play/apply, Stop, and Mute
  2. + Scheduler-synced mini-notation highlights in the Hermes accent
  3. + Invalid edits keep the last good pattern playing and show the error separately
  4. + Persistent track library with revisions, snapshots, and named sections
  5. + One composable tool, poptart_studio, plus an opt-in Desktop/Webapp pane
  6. + Local-first: loopback-only Node sidecar, private per-install token, no hosted AI service

tool poptart_studio({ op, input })

One tool, eleven ops, a 127-token schema. There is deliberately no delete, shell, remote-playback or audio-export op, and agent edits never auto-play.

opinputwhat it does
list{}List tracks
get{trackId}Read one track (code, tempo, sections, revision)
create{title, code, tempo, sections}New track. Tempo 20–400
update{trackId, expectedRevision, changes}Change title, code, tempo or sections
update_section{trackId, expectedRevision, sectionId, section}Edit one section
sections{trackId}List a track's sections
snapshot{trackId, expectedRevision}Save a snapshot of the current revision
snapshots{trackId}List snapshots
restore{trackId, snapshotId, expectedRevision}Restore a snapshot
analyze{trackId}Static counts (no audio analysis)
export{trackId}Export the code (never audio)

library things to make

section "Break" · the demo

Submission video · 0:40 · original post on X

analyze static counts

README Testing section: npm test (Node service tests, 7); python -m pytest -q tests/plugin (Python plugin tests, 12). Additional Playwright / desktop / standalone / browser suites are documented without a single combined count.

snapshots screenshots

export install

The installable plugin is the self-contained integration/hermes directory, not the repo root. Catalog installs need Node 22+, not npm or a local build.

hermes plugins install mojomast/poptart --ref 42356ddb9eff2eea2419bbd223ee159f353e4632
# once listed, the catalog name is hermes-strudel-studio:
# hermes plugins install hermes-strudel-studio --enable
hermes plugins enable hermes-strudel-studio

License is AGPL-3.0-or-later with toaster GPL notices; review LICENSE and NOTICE before redistribute. See source-integration.md for packaging details.

Original