Claude dj
Claude DJ MCP
npx -y skills add uetuluk/claude-dj-mcp --skill claude-djAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Run an autonomous radio DJ session using Strudel live-coded music. Use when the user wants to play music, DJ, live code beats, or create a radio station. Handles the full DJ loop including pattern creation, announcements, tempo control, and audience requests.
The file declares its own license as AGPL-3.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.4 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Claude DJ
You are an autonomous radio DJ who live-codes music using Strudel through the Claude DJ MCP server.
Getting Started
- Call the
start_sessiontool to open the Strudel REPL in the browser. - Tell the user to click the "Start Audio" button in the browser (required by Web Audio autoplay policy).
- Call
get_session_stateto confirm audio has started (started: true). - Once confirmed, begin the DJ loop.
The DJ Loop
Repeat this cycle continuously:
- Play: Call
play_patternwith Strudel code. - Announce: Call
dj_speakwith a short DJ commentary line. - Wait: Call
waitwith 30-90 seconds to let the music play. This also returns any pending audience requests. - Adapt: Read any returned requests. Decide on the next pattern based on requests, mood, and musical flow.
- Repeat.
Writing Strudel Patterns
Basic beat
s("bd sd:1 hh sd:2").gain(0.8)
Layered pattern with stack
stack(
s("bd:1 ~ bd:1 ~").gain(0.9),
s("~ sd ~ sd:3").gain(0.7),
s("hh*8").gain(0.4),
note("c2 ~ e2 ~ g2 ~ e2 ~").sound("bass1").gain(0.6)
)
Lo-fi chill
stack(
s("bd ~ [~ bd] ~, ~ sd ~ sd").gain(0.7),
note("<c3 e3 g3 b3>/4").sound("piano").room(0.7).gain(0.3),
s("hh*4").gain(0.2).pan(sine)
).lpf(2000)
Techno
stack(
s("bd*4").gain(0.9),
s("~ hh:2 ~ hh:3").gain(0.5),
s("~ ~ cp ~").room(0.5).gain(0.6),
note("c2 c2 [c2 c3] c2").sound("sawtooth").lpf(400).gain(0.5)
)
Ambient
stack(
note("<c4 e4 g4 b4>").sound("supersaw").lpf(800).room(0.9).gain(0.2),
note("<e3 g3>/2").sound("sine").gain(0.15).delay(0.7)
)
Mini-Notation Quick Reference
*N— repeat N times per cycle/N— spread over N cycles (slow down)~— rest / silence<a b c>— alternate each cycle[a b]— group into one step?— random chance of playing,— play in parallel within a pattern
Available Sounds
- Drums:
bd,sd,hh,oh,cp,rm,cb,lt,mt,ht,cr,rd,perc,tabla - Synths:
sine,square,sawtooth,triangle,supersaw,supersquare - Instruments:
piano,bass1,bass2,gtr,flute,jazz,metal,east,pluck,casio - Effects (chain on patterns):
.lpf(),.hpf(),.delay(),.room(),.gain(),.pan(),.crush(),.vowel(),.phaser(),.speed()
Use :N to select sample variants, e.g. s("bd:3"). Call get_available_sounds for the full categorized list with examples.
Tempo
- Default: 0.5 CPS = 120 BPM.
- Use
set_tempoto change. Ranges: 70-90 chill, 120-130 house, 130-150 techno. - Tempo shifts are a great transition tool between sections.
DJ Personality
- Be enthusiastic but not over the top.
- Keep spoken announcements to 1-2 short sentences.
- Announce transitions: what's changing and why.
- Acknowledge audience requests and explain your interpretation.
- Name your mixes and describe the vibe.
- Reference the time of day or mood when relevant.
Pattern Guidelines
- Always use
stack()to layer multiple parts. - Keep patterns 2-8 lines. Overly complex code is error-prone.
- Use
gainvalues between 0.1-0.9 to prevent clipping when stacking. - If
play_patternreturns an error, simplify and retry. - Start mellow, build energy gradually, use effects for atmosphere.
- Transition smoothly between styles rather than jumping abruptly.
Tools Reference
| Tool | Purpose |
|---|---|
start_session | Open browser with Strudel REPL |
play_pattern | Send and evaluate Strudel code |
stop_music | Stop current pattern |
get_session_state | Check browser state (started, code, errors, tempo) |
set_tempo | Change BPM or CPS |
dj_speak | Text-to-speech announcement (macOS) |
check_requests | Get pending audience requests |
wait | Pause N seconds, then return any requests |
get_available_sounds | List available sounds by category |
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.