# Music

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo.

- Repository: https://github.com/0xsline/OpenChatCut (2832 stars)
- Category: Media
- License: AGPL-3.0
- Last updated: 2026-10-21
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add 0xsline/OpenChatCut --skill music -g -a claude-code -y`
Codex: `npx skills add 0xsline/OpenChatCut --skill music -g -a codex -y`
Cursor: `npx skills add 0xsline/OpenChatCut --skill music -g -a cursor -y`
Gemini CLI: `npx skills add 0xsline/OpenChatCut --skill music -g -a gemini-cli -y`

## Description

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo. Use for instrumentals, songs, soundtracks, track/stem generation, covers, or video-conditioned scoring of the finished cut through `submit_music`.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Music

`submit_music` returns a generation `jobId`; call `track_progress` until every result is saved in the media pool. Placement, trim, loop, fades, and ducking remain timeline operations.

## Providers and modes

| Provider | Modes | Reference |
| --- | --- | --- |
| `mureka` | `instrumental`, `song`, `prompt-song`, `soundtrack`, `track` | [references/mureka.md](references/mureka.md) |
| `minimax` | `t2m`, `cover` | [references/minimax.md](references/minimax.md) |
| `atlas` | `t2m` | [references/atlas.md](references/atlas.md) |
| `sonilo` | `v2m` | [references/sonilo.md](references/sonilo.md) |

Select the named/configured vendor. Default to Mureka instrumental for ordinary BGM. Use Mureka song/prompt-song when its vocal or reference controls are wanted; use Mureka soundtrack for an image/video-driven score and track mode for generating a stem/track from a song/audio source. Use MiniMax for its text-to-music and cover models. Use Atlas Cloud for schema-backed text-to-music through its asynchronous audio API. Use Sonilo v2m when the music should be composed from the finished cut itself (a project video asset) rather than a text description.

## Shared workflow

1. Confirm provider, mode, and whether multiple paid variants are wanted.
2. Read the provider reference and pass only that provider's parameters.
3. Submit once, then call `track_progress({ target:"generation", action:"wait", jobIds:[jobId] })`.
4. Use every returned asset when `count` produced multiple results; do not assume only the legacy `result` field exists.
5. Place/trim/duck on the timeline only after actual durations are known.

## Examples

```ts
// Mureka instrumental (default count is deliberately 1)
submit_music({ provider: "mureka", mode: "instrumental", prompt: "Warm lo-fi piano bed under narration", count: 1 });

The rest: https://github.com/0xsline/OpenChatCut/blob/HEAD/src/agent/skills/music/SKILL.md
