>- Generate full songs with vocals or instrumentals (ACE-Step) and sound effects or ambience (Stable Audio Open) on the user's GPU through Guaardvark's Audio Foundry. Use when the user asks for a song, a beat, a jingle, background music, or a sound effect, made locally with no subscription.
npx skills add https://github.com/guaardvark/guaardvark --skill music
Read setup first; needs the audio_foundry plugin. B=${GUAARDVARK_URL:-http://localhost:5000}.
ACE-Step takes ~10 GB VRAM; the orchestrator evicts other models while it runs.
curl -s -X POST $B/api/audio-foundry/generate/music -H 'Content-Type: application/json' -d '{
"style_prompt": "indie folk, fingerpicked acoustic guitar, warm male vocal, 96 bpm, intimate",
"lyrics": "[verse]\nLines here\n[chorus]\nHook here",
"negative_prompt": "distorted, muddy, synth",
"duration_s": 90, "instrumental_only": false,
"output_format": "wav", "seed": 1234, "async": true
}'
style_prompt uses ACE-Step's tag vocabulary: genre, instruments, mood, tempo, vocal type.Vague words ("professional", "futuristic") drift to the model's prior; be concrete, and use
negative_prompt to push away from it. POST $B/api/audio-foundry/rewrite-music-prompt
turns plain English into the tag form when the user wants help.
lyrics with [verse] / [chorus] / [bridge] markers; omit or set instrumental_only: true.duration_s up to 240. Always send "async": true for anything over a few seconds.202 {"job_id"} → poll GET $B/api/audio-foundry/jobs/<job_id>; done when statusis done, with path, document_id, duration_s, seed. Reuse the seed to reproduce a take.
curl -s -X POST $B/api/audio-foundry/generate/fx -H 'Content-Type: application/json' -d '{
"prompt": "rain on a tin roof, distant thunder, no music", "duration_s": 20, "output_format": "wav", "async": true
}'
duration_s up to 47. Same job polling.
song.GET $B/api/audio-foundry/jobs lists, DELETE clears finished ones.Take guaardvark/music from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.