plugins/music-generator/skills/music-generator/SKILL.md
Generate AI music with ElevenLabs Music API. Use for: background music, soundtracks, jingles, theme songs, instrumental tracks, AI music composition.
npx skillsauth add aviz85/claude-skills-library music-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
First time? If
setup_complete: falseabove, run./SETUP.mdfirst, then setsetup_complete: true.
Generate custom AI music using ElevenLabs Music API with detailed composition control.
cd ~/.claude/skills/music-generator/scripts
# Simple prompt-based generation
npx ts-node generate_music.ts \
--prompt "Uplifting corporate music with electronic beats" \
--duration 60 \
--output /path/to/music.mp3
# List available styles
npx ts-node generate_music.ts --list-styles
Generate music from a single text prompt:
npx ts-node generate_music.ts \
--prompt "Energetic workout music with driving beats and motivational synths" \
--duration 90 \
--output workout.mp3
Create multi-section compositions with JSON config:
npx ts-node generate_music.ts \
--composition /path/to/composition.json \
--output epic-track.mp3
Composition JSON Format:
{
"duration_ms": 80000,
"instrumental": true,
"positive_global_styles": ["corporate", "motivational", "electronic"],
"negative_global_styles": ["sad", "aggressive", "heavy metal"],
"sections": [
{
"section_name": "Intro",
"duration_ms": 20000,
"positive_local_styles": ["building momentum", "soft start"],
"negative_local_styles": ["loud", "intense"],
"lines": []
},
{
"section_name": "Main Theme",
"duration_ms": 40000,
"positive_local_styles": ["energetic", "uplifting", "driving rhythm"],
"negative_local_styles": ["slow", "mellow"],
"lines": []
},
{
"section_name": "Outro",
"duration_ms": 20000,
"positive_local_styles": ["triumphant", "resolution"],
"negative_local_styles": ["abrupt ending"],
"lines": []
}
]
}
Moods:
Genres:
Instruments:
Use positive_local_styles and negative_local_styles to control individual sections:
Intro Styles:
Peak/Chorus Styles:
Outro Styles:
| Option | Short | Description |
|--------|-------|-------------|
| --prompt | -p | Text prompt for simple mode |
| --composition | -c | JSON file for detailed mode |
| --duration | -d | Duration in seconds (simple mode) |
| --output | -o | Output file path (required) |
| --instrumental | -i | Generate instrumental track |
| --format | -f | Output format (mp3_44100_192, mp3_44100_128) |
| --list-styles | | Show available styles |
| --help | -h | Show help |
npx ts-node generate_music.ts \
-p "Professional corporate background music, uplifting and modern, suitable for presentations" \
-d 120 \
-i \
-o corporate-bg.mp3
npx ts-node generate_music.ts \
-p "Catchy podcast intro music, energetic and memorable, with electronic elements" \
-d 15 \
-o podcast-intro.mp3
npx ts-node generate_music.ts \
-p "Epic fantasy adventure theme with orchestral instruments and heroic melodies" \
-d 180 \
-i \
-o game-theme.mp3
Create a file my-composition.json:
{
"duration_ms": 120000,
"instrumental": true,
"positive_global_styles": ["cinematic", "epic", "orchestral"],
"negative_global_styles": ["electronic", "modern"],
"sections": [
{
"section_name": "Dawn",
"duration_ms": 30000,
"positive_local_styles": ["soft", "mysterious", "building anticipation"],
"negative_local_styles": ["loud", "fast"],
"lines": []
},
{
"section_name": "Battle",
"duration_ms": 50000,
"positive_local_styles": ["intense", "driving", "heroic"],
"negative_local_styles": ["peaceful", "slow"],
"lines": []
},
{
"section_name": "Victory",
"duration_ms": 40000,
"positive_local_styles": ["triumphant", "emotional", "uplifting"],
"negative_local_styles": ["sad", "mellow"],
"lines": []
}
]
}
Then generate:
npx ts-node generate_music.ts \
-c my-composition.json \
-o epic-journey.mp3
"Invalid API key": Check .env file has valid ELEVENLABS_API_KEY
"Duration too long": Maximum is 330 seconds (5.5 minutes)
"Validation error": Ensure composition JSON has all required fields:
positive_global_styles (array)negative_global_styles (array)sections with section_name, duration_ms, positive_local_styles, negative_local_styles, linesdevelopment
The 10x10 method — generate breadth, then converge with human judgment. Use whenever a single AI output won't nail it and quality matters (design, copy, naming, posters, messaging, strategy options, code approaches), OR when the user says '10x10', 'ten by ten', 'give me 10 options', 'show me variations', or asks to refine/tighten an output instead of round-after-round corrections.
development
The 10x10 method — generate breadth, then converge with human judgment. Use whenever a single AI output won't nail it and quality matters (design, copy, naming, posters, messaging, strategy options, code approaches), OR when the user says '10x10', 'ten by ten', 'give me 10 options', 'show me variations', or asks to refine/tighten an output instead of round-after-round corrections.
development
Search across all Claude Code conversation history (JSONL files) across all projects.
development
Deep code audit that detects misleading patterns — fake tests, mock abuse, shallow health checks, overly optimistic error handling, hidden debt. Produces a structured report with findings AND actionable recommendations. Use when code looks green but smells wrong.