Resolve Audio
samuelgursky/davinci-resolve-mcp
Audio and Fairlight work in the DaVinci Resolve MCP. An agent skill from samuelgursky/davinci-resolve-mcp.
Generate music from a text prompt using Sonilo — instrumental tracks, background beds, jingles, loops — when there is no video to score.
$ npx skills add sonilo-ai/skills --skill text-to-music -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sonilo-ai/skills text-to-music --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/text-to-music .claude/skills/text-to-music && rm -rf skills-srcUse ~/.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/
Install the "text-to-music" agent skill from https://github.com/sonilo-ai/skills/tree/main/text-to-music into .claude/skills/text-to-music/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-to-music", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sonilo-ai/skills/tree/main/text-to-musicType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sonilo-ai/skills --skill text-to-music -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sonilo-ai/skills text-to-music --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/text-to-music .agents/skills/text-to-music && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "text-to-music" agent skill from https://github.com/sonilo-ai/skills/tree/main/text-to-music into .agents/skills/text-to-music/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-to-music", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sonilo-ai/skills --skill text-to-music -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sonilo-ai/skills text-to-music --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/text-to-music .cursor/skills/text-to-music && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "text-to-music" agent skill from https://github.com/sonilo-ai/skills/tree/main/text-to-music into .cursor/skills/text-to-music/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-to-music", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sonilo-ai/skills.git --path text-to-music--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sonilo-ai/skills --skill text-to-music -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sonilo-ai/skills text-to-music --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/text-to-music .gemini/skills/text-to-music && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "text-to-music" agent skill from https://github.com/sonilo-ai/skills/tree/main/text-to-music into .gemini/skills/text-to-music/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-to-music", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sonilo-ai/skills text-to-musicInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sonilo-ai/skills --skill text-to-music -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/text-to-music .github/skills/text-to-music && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "text-to-music" agent skill from https://github.com/sonilo-ai/skills/tree/main/text-to-music into .github/skills/text-to-music/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-to-music", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sonilo-ai/skills --skill text-to-music -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sonilo-ai/skills text-to-music --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/text-to-music .opencode/skills/text-to-music && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "text-to-music" agent skill from https://github.com/sonilo-ai/skills/tree/main/text-to-music into .opencode/skills/text-to-music/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-to-music", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
text-to-musicGenerate music from a text prompt using Sonilo — instrumental tracks, background beds, jingles, loops — when there is no video to score.
Text To Music is an agent skill from sonilo-ai/skills. Generate music from a text prompt using Sonilo — instrumental tracks, background beds, jingles, loops — when there is no video to score. Use when the user describes the music they want in words, with or without a length. Every track is licensed and cleared for commercial use. For scoring an existing video, use the video-to-music skill instead.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires Sonilo through either transport — the MCP server connected, or the sonilo CLI installed and signed in — plus credentials: a sonilo login sign-in, the…
It sits in Media & Creative, covering Music and audio generation and MCP servers. It works with Model Context Protocol. The repository describes itself as: Agent skills for Sonilo's licensed music, sound-effects, dubbing, and audio-ducking API. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1ce1bd8. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWritemcp__sonilo__*From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlpipnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.sonilo.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SONILO_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires Sonilo through either transport — the MCP server connected, or the `sonilo` CLI installed and signed in — plus credentials: a `sonilo login` sign-in, the hosted OAuth plugin, or SONILO_API_KEY. See the setup-api-key skill.
From compatibility in the SKILL.md frontmatter.
Text To Music loads about 2.7k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 1,182 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, mcp__sonilo__*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); files beside SKILL.md are not scanned.
The full file from sonilo-ai/skills at commit 1ce1bd8, republished under its MIT licence (© sonilo-ai). 1,182 words, ~2,671 tokens.
.claude/skills/text-to-music/SKILL.md (or your agent's skills folder).Generate music from a text description alone — no video involved. The prompt IS the input, so the brief carries everything: genre, mood, energy arc, instrumentation, and what must not appear. Every track is licensed (music licensed via Shutterstock) and cleared for commercial use on social, brand content, and advertising.
Setup: See the setup-api-key skill to connect the Sonilo MCP server and authenticate —
sonilo login(no key) orSONILO_API_KEY.
⚠️ Cost: this tool makes an API call that may incur charges. Only call it when the user has actually asked for a generation. Check
get_account_services(see the account skill) if you're unsure whether free-trial runs remain.
Scoring a video instead? Use video-to-music — it matches pacing, motion, and emotion to the actual cut, which a text prompt cannot do.
Pick one at the start of the session and stay on it. Do not mix the two inside a single job, and do not announce the choice.
text_to_music and friends) — use them. This is the preferred path: it needs no shell, and it is the only one that survives a very long generation. If a call fails to authenticate — rather than failing on its inputs — this transport is not usable in this session: go to 2 instead of retrying it.sonilo account exits 0 — use the CLI commands below. Same API, same account, same credential file. Probe with sonilo account, not sonilo whoami: whoami exits 0 even when signed out, so it cannot tell the two states apart.api.sonilo.com with curl to work around it; both transports handle uploads, polling and retries that a bare request does not.text_to_music(
prompt="A chill lo-fi hip hop beat with jazzy piano chords",
duration=30
)Saves the generated file(s) to SONILO_MCP_BASE_PATH (~/Desktop by default) and returns the saved path(s) as text.
pip install sonilo)from sonilo import Sonilo
client = Sonilo() # reads SONILO_API_KEY
track = client.text_to_music.generate(prompt="A chill lo-fi hip hop beat with jazzy piano chords", duration=30)
track.save("output.mp3")npm install sonilo)import { SoniloClient } from "sonilo";
const client = new SoniloClient(); // reads SONILO_API_KEY
const track = await client.textToMusic.generate({
prompt: "A chill lo-fi hip hop beat with jazzy piano chords",
duration: 30,
});npm install -g sonilo-cli or pip install sonilo-cli)sonilo text-to-music --prompt "A chill lo-fi hip hop beat with jazzy piano chords" --duration 30curl -X POST "https://api.sonilo.com/v1/text-to-music" \
-H "Authorization: Bearer $SONILO_API_KEY" \
--data-urlencode "prompt=A chill lo-fi hip hop beat with jazzy piano chords" \
--data-urlencode "duration=30" \
--output output.m4a| Tool | Description |
|---|---|
text_to_music(prompt, duration?, output_format?, variants_num?, stems?, output_directory?) | Generate music from a text description only — no video. |
| Parameter | Type | Default | Notes |
|---|---|---|---|
prompt | string | — | Required. 1–1000 chars. |
duration | int | inferred from the prompt | Optional, 5–360 seconds. Omit it when the user names no length — Sonilo reads one out of the prompt, so a "short jingle" comes back short and a "full-length closing-credits piece" comes back long. A vague prompt infers a long track ("lofi" alone resolves to about 180 seconds) and you are billed for it, so ask the user for a length when the cost matters. |
variants_num | int | 1 | 1–10. Generates that many distinct creative directions in one request — different takes, not re-renders of one. Cost scales linearly with the count, and any value above 1 is never covered by the free trial, so confirm the number with the user first. Above 1 writes one file per variant and forces the backend's async mode. |
output_format | string | m4a | m4a or wav. wav triggers the backend's async mode internally — no user-facing "mode" param needed. |
stems | bool | false | Free. Additionally splits each generated track into four separated instrument tracks — drums, bass, vocals, other — returned alongside the untouched full mix. Async-only on REST (stems=true without mode=async is a 400). See Stems. |
output_directory | string | SONILO_MCP_BASE_PATH | Absolute, or relative to the base path. |
stems=true additionally returns each generated track split into four
separated instrument tracks — drums, bass, vocals, other — free of
charge. The full mix is untouched; the stems arrive alongside it in the task
result as a stems array next to audio:
"stems": [
{
"stream_index": 0,
"drums": { "url": "…", "content_type": "audio/mp4", "file_size": 2913044 },
"bass": { "url": "…", "content_type": "audio/mp4", "file_size": 2870211 },
"vocals": { "url": "…", "content_type": "audio/mp4", "file_size": 2794560 },
"other": { "url": "…", "content_type": "audio/mp4", "file_size": 3011830 }
}
]What matters when you use it:
stems=true requires mode=async (a 400 otherwise): you get a 202 + task_id and poll /v1/tasks/{task_id}. The MCP tools are always async, so on the hosted server the param just works.sonilo-mcp package (>= 0.18.0), the SDKs (sonilo npm >= 0.16.0, PyPI >= 0.15.0), and the CLIs (--stems, npm sonilo-cli >= 0.15.0, PyPI sonilo-cli >= 0.14.0).stream_index, never by array position. A stream whose separation failed is simply absent, so stems can be shorter than audio.stems_error is not a failed generation. When separation failed wholly or partly, or was skipped, the task carries a stems_error string — possibly alongside a partial stems array. The generation itself succeeded and every audio URL is valid: treat missing stems as a missing extra, never as a reason to retry or refund.stems_error).other, and on instrumental tracks vocals is near-silent. That is correct behavior, not a bug.output_format; trust each stem's content_type for what was actually delivered.# REST: submit with stems, then poll the task
curl -X POST "https://api.sonilo.com/v1/text-to-music" \
-H "Authorization: Bearer $SONILO_API_KEY" \
--data-urlencode "prompt=A chill lo-fi hip hop beat with jazzy piano chords" \
--data-urlencode "duration=30" \
--data-urlencode "mode=async" \
--data-urlencode "stems=true"
# → {"task_id": "…"} — poll GET /v1/tasks/{task_id} for audio + stemsThe prompt is the only input — there is no footage to lean on. Describe genre, mood, tempo, instrumentation, and the energy arc; "A driving synthwave track with arpeggiated leads" beats "electronic music." Describe structure in words too ("builds for 10 s, drops, outro"), since there is no cut to infer it from. Name exclusions explicitly — the sounds that must not appear.
The same craft vocabulary applies as for video scoring, minus the video pre-flight: references/music-prompting.md.
Generate once and iterate on the prompt, not on rerolls — failed runs auto-refund, but your own retry is a new charge.
duration and Sonilo reads one out of the prompt — but a vague prompt resolves long ("lofi" alone is about 180 s) and is billed at that length, so ask first when cost matters.variants_num=3 returns three distinct directions for one request instead of three re-rolls. It costs 3×, and it is never free-trial covered — say the price before calling.stems=true — it's free, but async-only and not on every surface yet; see Stems.text_to_music streams its result in one call unless output_format="wav",
variants_num above 1, or stems=true triggers the backend's async mode. If an async variant
times out, the error message includes a task_id; the generation keeps running
(and is already charged) on the backend. Call get_sfx_task(task_id) —
get_generation_task(task_id) on the hosted server — to retrieve the result;
see the task-recovery skill.
.m4a by default (.wav if requested), named from the prompt (slugified) or sonilo-<timestamp>.m4a. Multiple parallel streams get a -<index> suffix.
Common errors: 401 invalid key, 402 insufficient balance / trial exhausted, 422 invalid parameters (e.g. duration out of range), 429 rate limit. See the account skill to check trial/usage before a call.
© sonilo-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in text-to-music of sonilo-ai/skills.
Open the folder on GitHubat commit 1ce1bd8
Text To 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Text To Music this skillsonilo-ai/skills | 115 | — | ~2.7k | Automated safety check: Notes | MIT | |
| Resolve Audiosamuelgursky/davinci-resolve-mcp | 3.5k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Musicguaardvark/guaardvark | 258 | — | ~710 | Automated safety check: Pass | MIT | |
| Fal Assetsrehan-remade/universal-modder | 6.5k | — | ~2k | Automated safety check: Notes | MIT | |
| Scenario Audioscenario-labs/skills | 946 | — | ~3k | Automated safety check: Pass | MIT | |
| OpenStoryline Install HelperFireRedTeam/FireRed-OpenStoryline | 3.5k | — | ~1.5k | Automated safety check: Notes | Apache-2.0 |
samuelgursky/davinci-resolve-mcp
Audio and Fairlight work in the DaVinci Resolve MCP. An agent skill from samuelgursky/davinci-resolve-mcp.
guaardvark/guaardvark
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.
rehan-remade/universal-modder
Generate game assets with fal (fal.ai) through the fal MCP server, the um fal CLI (REST) or fal api.
scenario-labs/skills
A skill your agent uses when generating or handling audio on Scenario via MCP.
FireRedTeam/FireRed-OpenStoryline
Installs, repairs and starts a local source checkout of FireRed-OpenStoryline, from prerequisites and a venv to resources, config and the MCP and web servers.
taisly/agent
Free AI-first short-form video publishing to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook from AI agents through Taisly.
sonilo-ai/skills
Generate a sound effect from a text description using Sonilo — a UI chime, a whoosh, an impact, ambience, a stylized cue — when there is no video to match.
sonilo-ai/skills
Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in.
sonilo-ai/skills
Check the Sonilo account's available services, rate limits, free-trial allowance, and usage/billing history.
sonilo-ai/skills
Duck a music bed under a voice track using Sonilo — automatically lowers the music wherever the voice speaks and lifts it back in the gaps.
sonilo-ai/skills
Play a local audio file through the system's default speakers using Sonilo's MCP server.
sonilo-ai/skills
Dub a video into one or more other languages using Sonilo, translating and re-voicing the speech into a new video per language.
Works with
Categories
Generate music from a text prompt using Sonilo — instrumental tracks, background beds, jingles, loops — when there is no video to score. Text To Music is an agent skill from sonilo-ai/skills. Generate music from a text prompt using Sonilo — instrumental tracks, background beds, jingles, loops — when there is no video to score.
Text To Music fits situations like: the user describes the music they want in words; without a length.
Run `npx skills add sonilo-ai/skills --skill text-to-music -a claude-code`. Or copy the skill folder (text-to-music in sonilo-ai/skills) into .claude/skills/text-to-music in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sonilo-ai/skills --skill text-to-music -a codex`. Or copy the skill folder (text-to-music in sonilo-ai/skills) into .agents/skills/text-to-music in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sonilo-ai/skills --skill text-to-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/text-to-music, .gemini/skills/text-to-music, .github/skills/text-to-music and .opencode/skills/text-to-music in your project.
Going by SKILL.md and its folder, Text To Music needs the command-line tools its instructions call (curl, pip and npm) and credentials named SONILO_API_KEY. Our summary lists: Python 3; Node.js; A credential in SONILO_API_KEY. Its frontmatter pre-approves these tools: Bash, Read, Write, mcp__sonilo__*. Compatibility (from SKILL.md): Requires Sonilo through either transport — the MCP server connected, or the `sonilo` CLI installed and signed in — plus credentials: a `sonilo login` sign-in, the hosted OAuth plugin, or SONILO_API_KEY. See the setup-api-key skill..
SKILL.md names 1 domain. In commands or code: api.sonilo.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Text To Music is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Text To Music: Resolve Audio (samuelgursky/davinci-resolve-mcp, 3.5k stars), Music (guaardvark/guaardvark, 258 stars), Fal Assets (rehan-remade/universal-modder, 6.5k stars) and Scenario Audio (scenario-labs/skills, 946 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sonilo-ai (a GitHub organization) maintains it in sonilo-ai/skills, which has 115 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 9, 2026.
Source: sonilo-ai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.