Agent skill

Strudel Music

by LeoYeAI in LeoYeAI/openclaw-master-skills

Audio deconstruction and composition via Strudel live-coding.

MITAuto-check passed

Install Strudel Music

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill strudel-music -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills strudel-music --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/strudel-music .claude/skills/strudel-music && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
strudel-music
GitHub stars
2.2k
Token cost
~5.2k tokens
SKILL.md length
1,769 words
Files
87 (incl. scripts, references, assets)
Skills in repo
1,235
Repo updated
First seen
Licence
MIT

At a glance

Audio deconstruction and composition via Strudel live-coding.

  • Works in 5 steps: Parse prompt → select mood, key, tempo,… → Write a .js composition using Strudel… → Render (in background!) → …
  • SKILL.md covers ⚠️ SESSION SAFETY — READ THIS…, Quick Start, Commands and Sample Management, plus 7 more sections
  • Runs JavaScript scripts from its folder; calls ffmpeg, bash and npm; needs BOT_TOKEN and DISCORD_TOKEN

What it does

Strudel Music is an agent skill from LeoYeAI/openclaw-master-skills. Audio deconstruction and composition via Strudel live-coding. Decompose any audio into stems, extract samples, compose with the vocabulary, render offline to WAV/MP3.

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 88 other files, including scripts, reference files and assets (for example `CHANGELOG.md`, `CONTRIBUTING.md` and `README.md`).

It works with Discord. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.

Example prompts

  • “/strudel-music”

Requirements

  • Python 3
  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Parse prompt → select mood, key, tempo, instruments (see references/mood-parameters.md)
  2. Write a .js composition using Strudel pattern syntax
  3. Render (in background!)
  4. Convert to MP3
  5. Post the MP3 as attachment or stream to Discord VC

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • ffmpeg
    • bash
    • npm
    • node
    • uv
    • pip
    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • signalsounds.com
    • looping.com
    • artgamesound.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • BOT_TOKEN
    • DISCORD_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Strudel Music loads about 5.2k tokens when it runs, and up to ~23k if it reads all its reference files. Until then it costs about 45 tokens; SKILL.md has 1,769 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~23k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,769 words, ~5,158 tokens.

Download SKILL.mdSave it as .claude/skills/strudel-music/SKILL.md (or your agent's skills folder). This skill also uses 86 other files; get the full folder from GitHub.
name
strudel-music
description
Audio deconstruction and composition via Strudel live-coding. Decompose any audio into stems, extract samples, compose with the vocabulary, render offline to WAV/MP3.
version
0.3.1
author
the dandelion cult
license
MIT
tags
music, audio, strudel, composition, samples, trance

⚠️ Legal Notice: This tool processes audio you provide. You are responsible for ensuring you have the rights to use the source material. The authors make no claims about fair use, copyright, or derivative works regarding your use of this tool with copyrighted material.

Strudel Music 🎵

Compose, render, deconstruct, and remix music using code. Takes natural language prompts → writes Strudel patterns → renders offline through real Web Audio synthesis → posts audio or streams to Discord VC (via the OpenClaw gateway — no separate credentials needed). Can also reverse-engineer any audio track into stems, samples, and generative programs.

New here? Read docs/ONBOARDING.md for a ground-up introduction.


⚠️ SESSION SAFETY — READ THIS FIRST

Rendering MUST run as a sub-agent or background process, never inline in your main session.

The offline renderer (chunked-render.mjs / offline-render-v2.mjs) runs a tight audio-processing loop that blocks the Node.js event loop. If you run it in your main OpenClaw session, it will kill the gateway after ~30 seconds (the heartbeat timeout).

✅ Correct: spawn a sub-agent or use background exec
❌ Wrong:   run the renderer inline in your main conversation

Always do this:

bash
# Background exec with timeout
exec background:true timeout:120 command:"node src/runtime/chunked-render.mjs src/compositions/my-track.js output/my-track.wav 20"

Or spawn a sub-agent:

sessions_spawn task:"Render strudel-music composition: node src/runtime/chunked-render.mjs ..."

This is the #1 way to break things. Don't skip this.


Quick Start

bash
# 1. Setup
cd ~/.openclaw/workspace/strudel-music
npm run setup              # installs deps + downloads samples (~11MB)

# 2. Verify
npm test                   # 12-point smoke test

# 3. Render
node src/runtime/chunked-render.mjs assets/compositions/fog-and-starlight.js output/fog.wav 16
ffmpeg -i output/fog.wav -codec:a libmp3lame -b:a 192k output/fog.mp3

Commands

InvocationWhat it does
/strudel <prompt>Compose from natural language — mood, scene, genre, instruments
/strudel play <name>Stream a saved composition into Discord VC
/strudel listShow available compositions with metadata
/strudel samplesManage sample packs (list, download, add)
/strudel concert <tracks...>Play a setlist in Discord VC
Composition Workflow
  1. Parse prompt → select mood, key, tempo, instruments (see references/mood-parameters.md)
  2. Write a .js composition using Strudel pattern syntax
  3. Render (in background!):
    bash
    node src/runtime/chunked-render.mjs <file> <output.wav> <cycles> [chunkSize]
  4. Convert to MP3:
    bash
    ffmpeg -i output.wav -codec:a libmp3lame -b:a 192k output.mp3
  5. Post the MP3 as attachment or stream to Discord VC
Discord VC Streaming
bash
node src/runtime/offline-render-v2.mjs assets/compositions/combat-assault.js /tmp/track.wav 12 140
ffmpeg -i /tmp/track.wav -ar 48000 -ac 2 /tmp/track-48k.wav -y
node scripts/vc-play.mjs /tmp/track-48k.wav

WSL2 users: enable mirrored networking (networkingMode=mirrored in .wslconfig) or VC streaming will fail silently (NAT breaks Discord's UDP voice protocol).

Sample Management

Directory Layout

Samples live in samples/. Any directory of WAV files is auto-discovered.

samples/
├── strudel.json          ← sample map (pitch info, paths)
├── kick/
│   └── kick.wav
├── hat/
│   └── hat.wav
├── bass_Cs1/
│   └── bass_Cs1.wav      ← pitched sample (root: C#1)
├── synth_lead/
│   └── synth_lead.wav     ← pitched sample (root: C#3, declared in strudel.json)
└── bloom_kick/
    └── bloom_kick.wav     ← from audio deconstruction
strudel.json Format

Maps sample names to files with optional root note declarations. The renderer uses this as the authoritative source for pitch detection.

json
{
  "_base": "./",
  "kick": { "0": "kick/kick.wav" },
  "bass_Cs1": { "cs1": "bass_Cs1/bass_Cs1.wav" },
  "synth_lead": { "cs3": "synth_lead/synth_lead.wav" }
}
  • Keys with note suffixes (_Cs1, _D2) declare the root pitch
  • Unpitched samples use "0" as the key
  • Always declare root notes for pitched samples — without it, the renderer defaults to C4, causing wrong transpositions (see docs/KNOWN-PITFALLS.md)
Managing Packs
bash
bash scripts/samples-manage.sh list              # show installed packs
bash scripts/samples-manage.sh add <url>          # download from URL
bash scripts/samples-manage.sh add ~/my-samples/  # add local directory

Ships with dirt-samples (153 WAVs, CC-licensed). Security: downloads enforce size limits (STRUDEL_MAX_DOWNLOAD_MB, default 10GB), MIME validation, optional host allowlist (STRUDEL_ALLOWED_HOSTS).

Composition Guide

Pattern Basics

CC0 / Free packs (just download and drop in samples/):

Your own packs: Export from any DAW (Ableton, FL Studio, M8 tracker, etc.) as WAV directories. Strudel doesn't care where they came from — it's just WAV files in folders.

Named banks (Strudel built-in, requires CDN access):

javascript
sound("bd sd cp hh").bank("RolandTR909")
sound("bd sd hh oh").bank("LinnDrum")
WSL2 Note

If running on WSL2 and streaming to Discord VC, enable mirrored networking:

ini
# %USERPROFILE%\.wslconfig
[wsl2]
networkingMode=mirrored

Then wsl --shutdown and relaunch. Without this, WSL2's NAT breaks Discord's UDP voice protocol — the bot joins the channel but no audio flows because IP discovery packets can't traverse the NAT return path. Mirrored mode eliminates the NAT by putting WSL2 directly on the host's network stack.

This only affects VC streaming. Offline rendering and file posting work in any networking mode.

Platform Requirements

Two tiers, depending on what you need:

Compose & Render (JS-only)
  • Node.js 18+ (22+ recommended for stable OfflineAudioContext)
  • ffmpeg (MP3/Opus conversion)
  • Works everywhere — x86_64, ARM64, WSL2, bare metal, containers.
  • No Python. No GPU. No ML stack.
Full Pipeline (audio deconstruction with Demucs)

Everything above, plus:

  • Python 3.10+
  • pip packages: demucs, librosa, numpy, scipy, scikit-learn, torch
  • ~2GB disk for PyTorch + Demucs model weights (downloaded on first run)
  • Optional: NVIDIA GPU + CUDA toolkit for ~5× Demucs speedup

Install the Python deps:

bash
pip install demucs librosa numpy scipy scikit-learn torch

If Python deps are missing, composition and rendering still work — you just can't do stem extraction. The skill should fail gracefully with a message, not a stack trace.


Full Pipeline (Audio Deconstruction)

If you have an MP3 and want to extract instruments from it, build sample racks, and compose with the extracted material — that's the full pipeline. It goes:

MP3 → Demucs (stem separation) → librosa (analysis) → sample slicing → Strudel composition → render → MP3

This is a 4–8 minute process for a typical track. See docs/pipeline.md for the complete stage-by-stage breakdown with commands, timings, and resource requirements.

Quick version
bash
# 1. Separate stems (Python/Demucs)
python -m demucs input.mp3 --out ./stems

# 2. Analyze + slice (see docs/pipeline.md for details)
# Currently semi-manual — analysis scripts in development

# 3. Write composition referencing sliced samples
# 4. Render
bash scripts/dispatch.sh render my-composition.js 16 120

# 5. Convert
ffmpeg -i output.wav -c:a libmp3lame -q:a 2 output.mp3 -y
Timings (ballpark)
StageCPU estimateGPU estimate
Demucs stem separation~15s/min of audio~3s/min of audio
Audio analysis (per stem)~10–20s~10–20s
Sample slicing~5s~5s
Compositioninstant (human/AI writes JS)instant
Rendering~30–60s/min of output~30–60s/min of output
MP3 conversion~5s~5s

Total (4-min track, CPU): 4–8 minutes. Compose + render only (no Demucs): 2–3 minutes.


⚠️ Session Safety — READ THIS

The full pipeline takes 4–8 minutes. Composition + render alone takes 2–3 minutes.

DO NOT run this inline in a Discord channel interaction or primary OpenClaw session. The 30-second response timeout will kill the process mid-render. There is no supervisor to recover. The skill will appear broken — silence, no output, no error message.

How to run safely

From an OpenClaw agent (correct):

javascript
sessions_spawn({
  task: "Render strudel composition: /strudel dark ambient tension, 65bpm",
  mode: "run",
  runTimeoutSeconds: 600  // 10 minutes — generous for full pipeline
})

Background process (also correct):

bash
exec({ command: "bash scripts/dispatch.sh render ...", background: true })

Direct CLI (fine for testing):

bash
bash scripts/dispatch.sh render assets/compositions/fog-and-starlight.js 16 72

What to tell the user: "Rendering takes a few minutes — I'll post the audio when it's ready." Don't leave them hanging with no feedback.

What NOT to do
javascript
// WRONG — will timeout after 30s in Discord context
exec({ command: "bash scripts/dispatch.sh render ..." })

// WRONG — blocking the main session for minutes
// (anything inline that takes >30s)

Learning Resources

Detailed documentation lives in docs/:

DocumentWhat it covers
docs/pipeline.mdFull pipeline stages, commands, timings, resource requirements, system dependencies
docs/composition-guide.mdPractical composition lessons — mini-notation pitfalls, the space-vs-angle-bracket rule, .slow() interactions, debugging hap explosions
docs/TESTING.mdTesting strategy — smoke tests, cross-platform validation, quality gates, naive install testing

Start with composition-guide.md if you're writing patterns. The space-separated vs angle-bracket distinction is the #1 source of bugs (gain explosions, distortion, memory crashes). The guide covers it with real case studies.


How It Works

The offline renderer uses node-web-audio-api (Rust-based Web Audio for Node.js) for real audio synthesis:

  1. Pattern evaluation — @strudel/core + @strudel/mini + @strudel/tonal parse pattern code into timed "haps"
  2. Audio scheduling — Each hap becomes either:
    • An oscillator (sine/saw/square/triangle) with ADSR envelope, biquad filter, stereo pan
    • A sample (AudioBufferSourceNode) from the samples directory, with pitch shifting
  3. Offline rendering — OfflineAudioContext.startRendering() produces complete audio
  4. Output — 16-bit stereo WAV at 44.1kHz → ffmpeg → MP3/Opus

Note on mini notation: The renderer explicitly calls setStringParser(mini.mini) after import because Strudel's npm dist bundles duplicate the Pattern class across modules. Same class of bug as openclaw#22790.

Composition Reference

Tempo
javascript
setcpm(120/4)  // 120 BPM

stack(
  s("bd sd [bd bd] sd").gain(0.4),           // drums (samples)
  s("[hh hh] [hh oh]").gain(0.2),            // hats
  note("c3 eb3 g3 c4")                       // melody
    .s("sawtooth")
    .lpf(sine.range(400, 2000).slow(8))      // filter sweep
    .attack(0.01).decay(0.3).sustain(0.2)    // ADSR envelope
    .room(0.4).delay(0.2)                    // space
    .gain(0.3)
)
Show full SKILL.md (726 more words)Show less
Mini Notation Quick Ref
SyntaxMeaning
"a b c d"Sequence (one per beat)
"[a b]"Subdivide (two in one beat)
"<a b c>"Alternate per cycle (slowcat)
"a*3"Repeat
"~"Rest / silence
.slow(2) / .fast(2)Time stretch
.euclid(3,8)Euclidean rhythm
Mood → Parameter Decision Tree
MoodTempoKey/ScaleCharacter
tension60-80minor/phrygianLow cutoff, sparse, drones
combat120-160minorHeavy drums, fast, distorted
peace60-80pentatonic/majorWarm, slow, ambient
mystery70-90whole toneReverb, sparse
victory110-130majorBright, fanfare
ritual45-60dorianOrgan drones, chant

Full tree: references/mood-parameters.md. Production techniques: references/production-techniques.md.

⚠️ Critical Pitfall: Gain Patterns

Use <> (slowcat) for sequential values, NOT spaces:

javascript
// ❌ WRONG — all values play simultaneously, causes clipping
s("kick").gain("0.3 0.3 0.5 0.3")

// ✅ RIGHT — one value per cycle
s("kick").gain("<0.3 0.3 0.5 0.3>")

Full list: docs/KNOWN-PITFALLS.md

Loudness Validation

Always check after rendering:

bash
ffmpeg -i output.wav -af loudnorm=print_format=json -f null - 2>&1 | grep -E "input_i|input_tp"

Target: -16 to -10 LUFS, true peak below -1 dBTP. Above -5 LUFS = something is wrong.

Audio Deconstruction Pipeline

Full pipeline docs: references/integration-pipeline.md

Audio → Demucs (stems) → librosa (analysis) → strudel.json → Composition → Render
  1. Stem separation — Demucs splits audio into vocals, drums, bass, other
  2. Analysis — librosa extracts pitches, onsets, rhythm patterns
  3. Sample mapping — Results written to strudel.json with root notes
  4. Two paths:
    • Grammar extraction (through-composed music) → generative program capturing statistical DNA
    • Sample-based (stanzaic/repetitive music) → stem slices played back through Strudel

Requires Python stack: uv init && uv add demucs librosa scikit-learn soundfile

File Structure

src/runtime/
  chunked-render.mjs      — Chunked offline renderer (avoids OOM on long pieces)
  offline-render-v2.mjs    — Core offline renderer
  smoke-test.mjs           — 12-point smoke test
scripts/
  download-samples.sh      — Download dirt-samples (idempotent)
  samples-manage.sh        — Sample pack manager
  vc-play.mjs              — Stream audio to Discord VC
samples/                   — Sample packs + strudel.json (gitignored)
assets/compositions/       — 15 original compositions
src/compositions/          — Audio deconstructions
references/                — Mood trees, techniques, architecture
docs/
  KNOWN-PITFALLS.md        — Critical composition pitfalls
  ONBOARDING.md            — Machine-actor onboarding guide

Renderer Internals

Uses node-web-audio-api (Rust-based Web Audio for Node.js). No browser, no Puppeteer.

The renderer calls setStringParser(mini.mini) after import because Strudel's npm dist bundles duplicate the Pattern class across modules — the mini notation parser registers on a different copy than the one used by note() and s().

All synthesis is local and offline via OfflineAudioContext: oscillators, biquad filters, ADSR envelopes, AudioBufferSourceNode for samples, dynamics compression, stereo panning. Output: 16-bit stereo WAV at 44.1kHz.


Known Platform Issues

PlatformIssueWorkaround
ARM64 (all)PyTorch CPU-only, no CUDAExpected — Demucs runs ~0.25× realtime
ARM64 (all)torchaudio.save() failsPatch demucs/audio.py to use soundfile.write() (see First-Time Setup)
ARM64 (all)torchcodec build failsNot needed — skip it, Demucs works without it
WSL2Discord VC silent (NAT blocks UDP)Enable mirrored networking in .wslconfig
AllStrudel mini parser not registeredRenderer calls setStringParser(mini.mini) — already handled

🔒 Security Model

Strudel compositions are JavaScript files executed by Node.js. They have the same access as any Node.js script:

  • Filesystem: read/write access to the working directory
  • Environment: can read environment variables
  • Network: can make HTTP requests

For untrusted compositions:

  • Run in a container or VM with no sensitive credentials in the environment
  • Use OpenClaw's sub-agent isolation (each sub-agent gets its own process)
  • Review composition code before rendering

For your own compositions: No special precautions needed — you wrote the code.

This is the same trust model as any programming language skill. The renderer itself is safe; the risk is in what compositions you choose to run.

Discord Integration

This skill uses OpenClaw's built-in Discord voice channel support for streaming. No separate BOT_TOKEN, DISCORD_TOKEN, or any Discord credentials are required. OpenClaw handles all Discord authentication and connection management. The skill simply produces audio files and hands them to OpenClaw's voice subsystem.

npm install safety

package.json contains no postinstall, preinstall, or lifecycle hooks. npm run setup runs npm install + scripts/download-samples.sh (downloads CC0 sample packs from known URLs).

What scripts/download-samples.sh fetches

The download script sparse-clones tidalcycles/Dirt-Samples from GitHub (CC-licensed) — specifically these directories: bd sd hh oh cp cr ride rim mt lt ht cb 808bd 808sd 808hc 808oh. This fetches ~153 WAV files (~11MB total). The script is idempotent (skips if samples already exist).

What scripts/samples-manage.sh does

The sample manager downloads additional packs from user-specified URLs with safety controls:

  • Size limit: configurable via STRUDEL_MAX_DOWNLOAD_MB (default: 10GB)
  • Host allowlist: optional STRUDEL_ALLOWED_HOSTS (comma-separated; empty = allow all)
  • MIME validation: checks downloaded files are audio or archive types
  • Path traversal protection: validates extracted paths don't escape the samples directory (zip-slip protection)

Concurrency

Only one render should be active per session at a time. If a user requests /strudel clone while a previous render is in progress:

  1. Check for active sub-agents using subagents(action=list)
  2. If a strudel render is running, respond: "🎵 A render is already in progress. Please wait for it to complete."
  3. Do not dispatch a second render — disk and memory contention can cause artifacts or failures.

Why: Concurrent renders with default output paths both write to output.wav, causing the second to overwrite the first. Even with explicit paths, two simultaneous OfflineAudioContext processes double memory usage. Sample loading is per-process (no shared cache), so there's no corruption risk — but disk I/O contention on the output write is real.

© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 86 other files (scripts, references, assets) in skills/strudel-music of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • CHANGELOG.md
  • CONTRIBUTING.md
  • README.md
  • _meta.json
  • assets/compositions/agent-parameterized.js
  • assets/compositions/cael-theme.js
  • assets/compositions/cathedral-ritual.js
  • assets/compositions/combat-assault.js
  • assets/compositions/dark-ambient-tension.js
  • assets/compositions/discovery-xenos.js
  • assets/compositions/elliott-theme.js
  • assets/compositions/fog-and-starlight.js
  • assets/compositions/lofi-chill-beats.js
  • assets/compositions/machine-hum.js
  • assets/compositions/rain.js
  • assets/compositions/silas-theme.js
  • assets/compositions/tavern-respite.js
  • assets/compositions/underhive-dread.js
  • … and 68 more

Open the folder on GitHubat commit e5199b5

Compare with similar skills

Strudel Music next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Strudel Music compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Strudel Music this skillLeoYeAI/openclaw-master-skills2.2k—~5.2kAutomated safety check: PassMIT
Agent Browser CLIvercel-labs/agent-browser44k24 repos~864Automated safety check: PassApache-2.0
Electron App Automationvercel-labs/agent-browser44k5 repos~1.7kAutomated safety check: PassApache-2.0
Claude To Imop7418/Claude-to-IM-skill2.9k—~3.4kAutomated safety check: NotesMIT
Sap Extension Creatorheshengtao/super-agent-party2.7k—~6kAutomated safety check: PassAGPL-3.0
Libtv Videonexu-io/nexu3.3k—~3.5kAutomated safety check: PassMIT

Similar skills

  • Agent Browser CLI

    vercel-labs/agent-browser

    Official

    Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…

    44k GitHub starsUsed in 24 repos~864 tokens
    Productivity & AutomationAuto-check passed
  • Electron App Automation

    vercel-labs/agent-browser

    Official

    Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.

    44k GitHub starsUsed in 5 repos~1.7k tokens
    Productivity & AutomationAuto-check passed
  • Claude To Im

    op7418/Claude-to-IM-skill

    Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.

    2.9k GitHub stars~3.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check: notes
  • Sap Extension Creator

    heshengtao/super-agent-party

    Create Super Agent Party (SAP) extensions. An agent skill from heshengtao/super-agent-party.

    2.7k GitHub stars~6k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Libtv Video

    nexu-io/nexu

    Seedance 2.0 video & image generation via LibTV Gateway - AI text-to-video, image-to-video, video continuation, style transfer, and text-to-image using Seedance 2.0 model.

    3.3k GitHub stars~3.5k tokensUpdated 5 mo ago
    Media & CreativeAuto-check passed
  • Send User Message

    TinyAGI/tinyagi

    Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).

    3.6k GitHub stars~829 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,200 skills in this repo
  • DevOps Pipeline Management

    LeoYeAI/openclaw-master-skills

    Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    LeoYeAI/openclaw-master-skills

    Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    LeoYeAI/openclaw-master-skills

    Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    LeoYeAI/openclaw-master-skills

    Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    LeoYeAI/openclaw-master-skills

    Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    LeoYeAI/openclaw-master-skills

    Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Strudel Music

What does Strudel Music do?

Audio deconstruction and composition via Strudel live-coding. Strudel Music is an agent skill from LeoYeAI/openclaw-master-skills. Audio deconstruction and composition via Strudel live-coding.

How do I install Strudel Music in Claude Code?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill strudel-music -a claude-code`. Or copy the skill folder (skills/strudel-music in LeoYeAI/openclaw-master-skills) into .claude/skills/strudel-music in your project. Claude Code loads it when a task matches its description.

How do I install Strudel Music in Codex?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill strudel-music -a codex`. Or copy the skill folder (skills/strudel-music in LeoYeAI/openclaw-master-skills) into .agents/skills/strudel-music in your project. Codex loads it when a task matches its description.

Can I use Strudel Music in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill strudel-music -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/strudel-music, .gemini/skills/strudel-music, .github/skills/strudel-music and .opencode/skills/strudel-music in your project.

What does Strudel Music need to run?

Going by SKILL.md and its folder, Strudel Music needs JavaScript for the scripts in its folder, the command-line tools its instructions call (ffmpeg, bash, npm, node, uv and pip) and credentials named BOT_TOKEN and DISCORD_TOKEN. Our summary lists: Python 3; Node.js.

Does Strudel Music access the network?

SKILL.md names 4 domains. As links in the text: github.com, signalsounds.com, looping.com and artgamesound.com. This is read from the text; nothing was executed.

Is Strudel Music safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Strudel Music use?

Strudel Music is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Strudel Music use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 17k tokens, read only when the agent opens those files.

What are the alternatives to Strudel Music?

Skills that share tags, products or a category with Strudel Music: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Electron App Automation (vercel-labs/agent-browser, 44k stars), Claude To Im (op7418/Claude-to-IM-skill, 2.9k stars) and Sap Extension Creator (heshengtao/super-agent-party, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Strudel Music?

LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.

Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.