{"id":"4ca832ce-7709-4c71-87b8-c336681029bb","shortId":"Zvsb6n","kind":"skill","title":"audio-jingle","tagline":"Audio generation skill — jingles, beds, voiceover, and sound effects.\nRoutes music requests to Suno V5 / Udio / Lyria, speech to MiniMax\nTTS / FishAudio / ElevenLabs V3, and SFX to ElevenLabs SFX or\nAudioCraft. Output is one MP3/WAV file saved to the project folder.","description":"# Audio Jingle Skill\n\nThree sub-modes. The active project's `audioKind` decides which one\nruns:\n\n| `audioKind` | Models we route to | Plan focus |\n|---|---|---|\n| `music` | Suno V5 (default), Udio, Lyria 2 | genre + tempo + instrumentation |\n| `speech` | MiniMax TTS (default), Fish, ElevenLabs V3 | script + voice + pacing |\n| `sfx` | ElevenLabs SFX (default), AudioCraft | texture + impact + duration |\n\n## Resource map\n\n```\naudio-jingle/\n├── SKILL.md\n└── example.html\n```\n\n## Workflow\n\n### Step 0 — Read the project metadata\n\n`audioKind`, `audioModel`, `audioDuration` (seconds), and (for speech)\n`voice`. Branch by `audioKind` and use the values verbatim — no\nclarifying form unless something is marked `(unknown — ask)`.\n\nImportant: `voice` is provider-specific. For `minimax-tts`, `--voice`\nmust be a valid MiniMax `voice_id` (for example `male-qn-qingse`), not\na natural-language description. If you only have a prose voice brief\n(\"warm female narrator\", \"neutral Mandarin\"), keep that in your plan\nbut omit `--voice` so the daemon's default voice id applies, or ask the\nuser to choose a specific id.\n\n### Step 1 — Plan\n\n**Music**\n- Genre + reference artists (1-2)\n- Tempo (BPM) + key\n- Instrumentation (3-5 instruments max)\n- Vocals: yes / no / hummed / choir\n- Mood arc (intro → chorus → outro)\n\n**Speech**\n- Script (final, not draft — TTS runs verbatim)\n- Voice target + pacing\n  For MiniMax this means a real `voice_id`, not prose in `--voice`\n- Pronunciation hints for proper nouns / acronyms\n\n**SFX**\n- Texture (impact / whoosh / ambience / foley)\n- Duration + envelope (sharp attack vs. gentle swell)\n- Layering note (single hit vs. stacked)\n\nState the plan in 2-3 sentences before dispatching.\n\n### Step 2 — Compose the prompt\n\nUse the format the upstream model prefers. Bind `audioDuration` to the\nAPI parameter directly; never put \"make it 30 seconds\" in prose.\n\n### Step 3 — Dispatch via the media contract\n\nUse the unified dispatcher — do **not** call provider APIs by hand:\n\n```bash\n\"$OD_NODE_BIN\" \"$OD_BIN\" media generate \\\n  --project \"$OD_PROJECT_ID\" \\\n  --surface audio \\\n  --audio-kind \"<music|speech|sfx>\" \\\n  --model \"<audioModel from metadata>\" \\\n  --duration <audioDuration seconds> \\\n  [--voice \"<provider voice id (speech only)>\"] \\\n  --output \"<short-slug>-<duration>s.mp3\" \\\n  --prompt \"<assembled prompt from Step 2 — for speech, the literal script>\"\n```\n\nThe command prints one line of JSON: `{\"file\": {\"name\": \"...\", ...}}`.\nThe bytes land in the project; the FileViewer renders the audio\ntransport controls automatically.\n\n### Step 4 — Hand off\n\nReply with: plan summary, the filename returned by the dispatcher, and\none sentence on what to try if the user wants a variation (e.g. \"swap\ntempo from 92 to 108 BPM\" rather than \"make it different\").\n\n## Hard rules\n\n- TTS runs your script **literally**. Proof it before dispatching —\n  even one stray comma changes the cadence.\n- MiniMax TTS rejects free-form voice prose in `--voice`. Use a real\n  MiniMax `voice_id` (for example `male-qn-qingse`) or omit the flag\n  and let the daemon's default voice apply.\n- Music: under 30s = single section; 30–90s = intro + body; 90s+ =\n  full arc. Don't try to fit a 3-act song into 15 seconds.\n- SFX: prefer one well-described layer over a paragraph of \"make it\n  cool\" — generators reward specific texture words.\n- Save the file every turn. The audio viewer shows transport controls\n  the moment the file lands.","tags":["audio","jingle","open","design","nexu-io","agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design"],"capabilities":["skill","source-nexu-io","skill-audio-jingle","topic-agent-skills","topic-ai-agents","topic-ai-design","topic-byok","topic-claude","topic-claude-code-for-design","topic-claude-design","topic-coding-agents","topic-design-systems","topic-design-tools","topic-desktop-app","topic-figma-alternative"],"categories":["open-design"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/nexu-io/open-design/audio-jingle","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add nexu-io/open-design","source_repo":"https://github.com/nexu-io/open-design","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 36607 github stars · SKILL.md body (3,438 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-11T06:52:18.680Z","embedding":null,"createdAt":"2026-05-01T18:52:31.591Z","updatedAt":"2026-05-11T06:52:18.680Z","lastSeenAt":"2026-05-11T06:52:18.680Z","tsv":"'-2':211 '-3':283 '-5':217 '0':105 '1':204,210 '108':429 '15':510 '2':74,282,288,367 '3':216,315,506 '30':310,493 '30s':490 '4':397 '90s':494,497 '92':427 'acronym':258 'act':507 'activ':53 'ambienc':263 'api':303,329 'appli':193,487 'arc':226,499 'artist':209 'ask':134,195 'assembl':363 'attack':268 'audio':2,4,45,99,345,347,392,537 'audio-jingl':1,98 'audio-kind':346 'audiocraft':34,92 'audiodur':112,300 'audiokind':56,61,110,120 'audiomodel':111 'automat':395 'bash':332 'bed':8 'bin':335,337 'bind':299 'bodi':496 'bpm':213,430 'branch':118 'brief':172 'byte':383 'cadenc':453 'call':327 'chang':451 'choir':224 'choos':199 'chorus':228 'clarifi':127 'comma':450 'command':374 'compos':289 'contract':320 'control':394,541 'cool':525 'daemon':188,483 'decid':57 'default':71,81,91,190,485 'describ':517 'descript':164 'differ':435 'direct':305 'dispatch':286,316,324,409,446 'draft':234 'durat':95,265,353 'e.g':423 'effect':12 'elevenlab':26,31,83,89 'envelop':266 'even':447 'everi':534 'exampl':154,471 'example.html':102 'femal':174 'file':39,380,533,545 'filenam':405 'fileview':389 'final':232 'fish':82 'fishaudio':25 'fit':504 'flag':479 'focus':67 'folder':44 'foley':264 'form':128,459 'format':294 'free':458 'free-form':457 'full':498 'generat':5,339,526 'genr':75,207 'gentl':270 'hand':331,398 'hard':436 'hint':254 'hit':275 'hum':223 'id':152,192,202,248,343,357,469 'impact':94,261 'import':135 'instrument':77,215,218 'intro':227,495 'jingl':3,7,46,100 'json':379 'keep':178 'key':214 'kind':348 'land':384,546 'languag':163 'layer':272,518 'let':481 'line':377 'liter':371,442 'lyria':20,73 'make':308,433,523 'male':156,473 'male-qn-qings':155,472 'mandarin':177 'map':97 'mark':132 'max':219 'mean':244 'media':319,338 'metadata':109 'minimax':23,79,143,150,242,454,467 'minimax-tt':142 'mode':51 'model':62,297,352 'moment':543 'mood':225 'mp3/wav':38 'music':14,68,206,349,488 'must':146 'name':381 'narrat':175 'natur':162 'natural-languag':161 'neutral':176 'never':306 'node':334 'note':273 'noun':257 'od':333,336,341 'omit':184,477 'one':37,59,376,411,448,514 'output':35,360 'outro':229 'pace':87,240 'paragraph':521 'paramet':304 'plan':66,182,205,280,402 'prefer':298,513 'print':375 'project':43,54,108,340,342,387 'prompt':291,362,364 'pronunci':253 'proof':443 'proper':256 'prose':170,250,313,461 'provid':139,328,355 'provider-specif':138 'put':307 'qings':158,475 'qn':157,474 'rather':431 'read':106 'real':246,466 'refer':208 'reject':456 'render':390 'repli':400 'request':15 'resourc':96 'return':406 'reward':527 'rout':13,64 'rule':437 'run':60,236,439 's.mp3':361 'save':40,531 'script':85,231,372,441 'second':113,311,511 'section':492 'sentenc':284,412 'sfx':29,32,88,90,259,351,512 'sharp':267 'show':539 'singl':274,491 'skill':6,47 'skill-audio-jingle' 'skill.md':101 'someth':130 'song':508 'sound':11 'source-nexu-io' 'specif':140,201,528 'speech':21,78,116,230,350,358,369 'stack':277 'state':278 'step':104,203,287,314,366,396 'stray':449 'sub':50 'sub-mod':49 'summari':403 'suno':17,69 'surfac':344 'swap':424 'swell':271 'target':239 'tempo':76,212,425 'textur':93,260,529 'three':48 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-design' 'topic-byok' 'topic-claude' 'topic-claude-code-for-design' 'topic-claude-design' 'topic-coding-agents' 'topic-design-systems' 'topic-design-tools' 'topic-desktop-app' 'topic-figma-alternative' 'transport':393,540 'tri':416,502 'tts':24,80,144,235,438,455 'turn':535 'udio':19,72 'unifi':323 'unknown':133 'unless':129 'upstream':296 'use':122,292,321,464 'user':197,419 'v3':27,84 'v5':18,70 'valid':149 'valu':124 'variat':422 'verbatim':125,237 'via':317 'viewer':538 'vocal':220 'voic':86,117,136,145,151,171,185,191,238,247,252,354,356,460,463,468,486 'voiceov':9 'vs':269,276 'want':420 'warm':173 'well':516 'well-describ':515 'whoosh':262 'word':530 'workflow':103 'yes':221","prices":[{"id":"7cabab29-2ae2-47a6-b6df-faae9e60cb15","listingId":"4ca832ce-7709-4c71-87b8-c336681029bb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"nexu-io","category":"open-design","install_from":"skills.sh"},"createdAt":"2026-05-01T18:52:31.591Z"}],"sources":[{"listingId":"4ca832ce-7709-4c71-87b8-c336681029bb","source":"github","sourceId":"nexu-io/open-design/audio-jingle","sourceUrl":"https://github.com/nexu-io/open-design/tree/main/skills/audio-jingle","isPrimary":false,"firstSeenAt":"2026-05-01T18:52:31.591Z","lastSeenAt":"2026-05-11T06:52:18.680Z"},{"listingId":"4ca832ce-7709-4c71-87b8-c336681029bb","source":"skills_sh","sourceId":"nexu-io/open-design/audio-jingle","sourceUrl":"https://skills.sh/nexu-io/open-design/audio-jingle","isPrimary":true,"firstSeenAt":"2026-05-07T20:43:05.265Z","lastSeenAt":"2026-05-07T22:41:58.429Z"}],"details":{"listingId":"4ca832ce-7709-4c71-87b8-c336681029bb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"nexu-io","slug":"audio-jingle","github":{"repo":"nexu-io/open-design","stars":36607,"topics":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"license":"apache-2.0","html_url":"https://github.com/nexu-io/open-design","pushed_at":"2026-05-11T06:48:43Z","description":"🎨 Local-first, open-source alternative to Anthropic's Claude Design. ⚡ 19 Skills · ✨ 71 brand-grade Design Systems 🖼 Generate web · desktop · mobile prototypes · slides · images · videos · HyperFrames 📦 Sandboxed preview · HTML/PDF/PPTX/MP4 export 🤖 Runs on Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen / Copilot / Hermes / Kimi CLI.","skill_md_sha":"97001144174e9bfb09e0477a3d14ace5758e18ea","skill_md_path":"skills/audio-jingle/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/nexu-io/open-design/tree/main/skills/audio-jingle"},"layout":"multi","source":"github","category":"open-design","frontmatter":{"name":"audio-jingle","description":"Audio generation skill — jingles, beds, voiceover, and sound effects.\nRoutes music requests to Suno V5 / Udio / Lyria, speech to MiniMax\nTTS / FishAudio / ElevenLabs V3, and SFX to ElevenLabs SFX or\nAudioCraft. Output is one MP3/WAV file saved to the project folder."},"skills_sh_url":"https://skills.sh/nexu-io/open-design/audio-jingle"},"updatedAt":"2026-05-11T06:52:18.680Z"}}