// 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.
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"
- + Live-coding Strudel/JS editor with tempo, Play/apply, Stop, and Mute
- + Scheduler-synced mini-notation highlights in the Hermes accent
- + Invalid edits keep the last good pattern playing and show the error separately
- + Persistent track library with revisions, snapshots, and named sections
- + One composable tool,
poptart_studio, plus an opt-in Desktop/Webapp pane - + 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.
| op | input | what 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
- track 01
Write a Strudel pattern in the studio and press Play; nothing sounds until you do
- track 02
Ask Hermes to draft a beat, add a break, or change the tempo through
poptart_studio, then apply it yourself - track 03
Keep several tracks with snapshots and switch named sections such as Intro, Main, or Break
- track 04
Watch tokens light up as they play, then edit without killing the groove if the new code is invalid
- track 05
Use the right-hand library layout shown in the README screenshots
- track 06
Run the studio as a standalone app (Node 22+) or as the catalog subdirectory integration/hermes
section "Break" · the demo
analyze static counts
- 1agent tool
- 127o200k schema tokens
- 7node service tests
- 12python plugin tests
- 0:40submission video
- v0.2.5release
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
Hermes webapp with a chat using poptart_studio on the left and the docked studio pane playing a track on the right. Close-up of the studio pane playing a 126 BPM, three-section track, library on the right. Studio layout with the library on the right (packaged player, headless test). Plugin card in Hermes, installed and enabled (v0.2.3). poptart banner: Strudel live-coding studio for Hermes.
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-studioLicense is AGPL-3.0-or-later with toaster GPL notices; review LICENSE and NOTICE before redistribute. See source-integration.md for packaging details.