music-craft
Generate songs, instrumentals, or lyrics-driven tracks through a structured OpenClaw-native workflow with anti-sparse prompt engineering and quality verification. Provider-agnostic — works with any music backend the runtime exposes (ACE-Step, MusicGen, Stable Audio, mmx).
Rank
62
Safety
84
Downloads
1.1k
Updated
Oct 11, 2026
Version
1.6.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1.1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.6.0release · observed Jul 30, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s171padhas9w52sdjc3110vhss83j8jp:music-craft- Install using `clawhub skill install s171padhas9w52sdjc3110vhss83j8jp:music-craft` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/luischarro/music-craft before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-luischarro-music-craft/snapshot"
Documentation
CLAWHUB
150,611 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: music-craft
version: 1.6.0
description: Generate songs, instrumentals, or lyrics-driven tracks through a structured OpenClaw-native workflow with anti-sparse prompt engineering and quality verification. Provider-agnostic — works with any music backend the runtime exposes (ACE-Step, MusicGen, Stable Audio, mmx).
metadata: {"openclaw":{"requires":{"anyBins":["python3","python"]},"emoji":"\ud83c\udfb5","homepage":"https://github.com/LuisCharro/skills/tree/main/publish/music-craft","envVars":[{"name":"MUSIC_PROVIDER_API_KEY","required":false,"description":"Generic API key for any music provider."},{"name":"STABILITY_API_KEY","required":false,"description":"Stability AI API key. Only needed if using Stable Audio as backend."}]}}
---
# Music Craft
## What is Music Craft?
Music Craft is the **provider-agnostic entry point** for music generation in OpenClaw. It guides the model end-to-end — from intake, through a structured production-sheet prompt, to quality verification and delivery — so you get songs, instrumentals, or lyrics-driven tracks that sound complete (no sparse dropouts, no silent sections), in your chosen length, with vocals that match your lyrics.
**It picks the right backend for the job.** Local ACE-Step for exact-duration vocal tracks with lyrics. MusicGen for local instrumental experiments. Stable Audio for production-friendly instrumentals. The `mmx` CLI for fast cloud generation. You pick the outcome; the skill routes.
## Key Capabilities
- **Production-sheet prompt engineering** — every prompt is a structured brief with genre, mood, BPM, key, instruments, structure, vocals, and an avoid list.
- **Anti-sparse guards by default** — instruments stay playing, no a cappella dropouts, no silent mid-sections.
- **Exact-duration vocal tracks** — local ACE-Step returns requested length to the millisecond (verified 18/18 local jobs).
- **Structure-tagged lyrics** — canonical `[Verse]`, `[Chorus]`, `[Break]`, etc., so the model sings the song you wrote.
- **Pre-generation linting** — duration density, tag whitelist, prompt/flag conflicts caught before you spend a generation.
- **Quality verification on every output** — duration, loudness, file size, audible completeness, lyrics alignment.
- **Provider-agnostic** — local ACE-Step, MusicGen, Stable Audio, or the MiniMax cloud CLI; same workflow, same verification.
## Why use this skill?
Most music models treat "sparse" as "remove everything" or "3 minutes" as "however long the model wants". Music Craft encodes the rules once, so every generation runs through the same loop with the same anti-sparse guard, the same prompt validation, the same post-generation verification. You get coherent, full, audibly correct songs — not first-draft lottery tickets.
## Quick Start
1. Say what you want — e.g. _"Make a sad love song in Spanish, ~3 minutes."_
2. The skill auto-detects language, genre, mood, duration, and asks only the 1-3 things that aren't recoverable from your message.
3. It builREADME.md
# Music Craft Generate songs, instrumentals, and lyrics-driven tracks through a disciplined OpenClaw-native workflow. Current release: v1.6.0. This skill is **provider-agnostic**. It works with any music backend the OpenClaw runtime exposes via the `music_generate` tool — no special CLI, API, or library required. ## Data and consent Depending on the chosen backend, prompts, lyrics, reference URLs, or generated/derived music instructions may be sent to a cloud provider. Local backends may download models and write temporary/generated audio files on the user's machine. Ask before installing/downloading large dependencies, uploading user-owned media, or overwriting existing outputs. ## Licensing and commercial use ClawHub publishes this skill bundle under MIT-0, so the skill instructions and bundled helper code may be used, modified, and redistributed commercially without attribution. MIT-0 does not grant rights to third-party models, software, source material, or generated music. The operator must accept the selected backend's current terms on their own computer and use their own provider account. ACE-Step 1.5 is currently documented by its project as MIT/commercial-ready. MusicGen's code is MIT, but its model weights are CC-BY-NC 4.0 and must not be used for commercial output. For any other backend, identify and verify its model, account tier, and output terms before commercial use. Source audio, lyrics, samples, and voices must also be owned or properly licensed. ## Platform support This base workflow is effectively OS-neutral: it should work on macOS, Linux, and Windows as long as the active OpenClaw runtime exposes the `music_generate` tool. Platform differences only matter if the runtime provider itself needs local setup. ## What it does - Translates your request into a production-sheet prompt with anti-sparse guards - Structures your lyrics (or auto-generated lyrics) with whitelisted section tags - Calls the runtime's `music_generate` tool - Verifies duration, loudness, structure, lyrics alignment, and audible quality before delivery - Documents prompt-length, lyrics-transcription, direct ACE-Step submission, wait-and-collect, and post-generation finalization safeguards ## When to use Use this skill for any music generation task that does not require: - cover or style transfer from a reference audio file - emotion analysis or two-song mashup - separate `--avoid`, `--bpm`, `--key`, or `--structure` flags For those, see [`music-craft-minimax`](../music-craft-minimax/) (requires MiniMax Token Plan). Audio input must be a local file path. URLs are not accepted in v1.5.0+; if you want to fetch audio by title from the internet, use the private `music-source-fetch` skill first (not published on ClawHub). If the request is a standard song, instrumental, jingle, or lyrics-driven track, stay here and infer defaults first. For exact-duration vocal tracks, prefer the local ACE-Step path documented in [`references/acestep-generation.md`](
_meta.json
{
"ownerId": "kn7fkh362pnj2zckq8pcxfaxr9821zv8",
"slug": "music-craft",
"version": "1.6.0",
"publishedAt": 1785411394536
}references/acestep-generation.md
# ACE-Step Generation
Complete ACE-Step 1.5 operating guide: API workflow (submit, poll, copy),
full-song generation, quality tiers with memory-safe selection, and
audio-conditioned generation (cover, repaint, reference audio). Load this
when the selected backend is ACE-Step.
## ACE-Step 1.5 (local — free, vocals + lyrics, best local quality)
**Best for:** local generation with real vocals, separate lyrics, song structure, up to 10 minutes (600s). No API key, no quota. Runs natively on Apple Silicon via MLX.
**Verified routing note (2026-06-12):** ACE-Step is the exact-duration route.
In a 9-song field run, local M1+M2 generations returned the requested
`audio_duration` exactly for 18/18 jobs. MiniMax cloud was faster but returned
57-135% of requested duration for the paired cloud jobs.
**Prerequisites:** REST API must be running on `http://127.0.0.1:8001`. Install with:
```bash
git clone https://github.com/ace-step/ACE-Step-1.5.git "${ACE_STEP_PATH}"
cd "${ACE_STEP_PATH}" && uv sync
uv run acestep-api --port 8001 # or: ./start_api_server_macos.sh
```
(See [`setup-and-preflight.md`](setup-and-preflight.md) for how `ACE_STEP_PATH` is determined.)
**Generation (3-step async):**
```bash
# 1. Submit task
TASK_ID=$(curl -s -X POST http://127.0.0.1:8001/release_task \
-H "Content-Type: application/json" \
-d '{
"prompt": "<detailed caption, e.g.: dreamy 80s synthwave, warm analog synths, gated-reverb drums, arpeggiated bass, neon night-drive mood>",
"lyrics": "[Verse]\n<lyrics here>\n\n[Chorus]\n<lyrics here>",
"audio_duration": 210,
"bpm": 96,
"key_scale": "D major",
"time_signature": "4/4",
"vocal_language": "en",
"thinking": true,
"inference_steps": 8,
"guidance_scale": 7.0
}' | python3 -c "import json,sys; print(json.load(sys.stdin).get('data',{}).get('task_id',''))")
# 2. Poll for completion. Treat empty `data` as pending, not failed.
# Wait, then check:
curl -s -X POST http://127.0.0.1:8001/query_result \
-H "Content-Type: application/json" \
-d "{\"task_ids\": [\"$TASK_ID\"]}"
# 3. Copy audio from cache dir when done
# Files saved to: ${ACE_STEP_PATH}/.cache/acestep/tmp/api_audio/
```
**Polling caveat:** The `/query_result` endpoint may return `{"data": [], "code": 200}` even while the task is actively running. This is a known server-side quirk. Don't treat empty data as "task failed" — instead, check for new MP3 files in the cache directory, or look at the server log (`/tmp/acestep-api.log`) for actual progress markers (e.g. `MLX DiT diffusion: 24/50`). If available, use `scripts/wait_for_acestep.py` because it reconciles `/query_result` with cache-file detection.
**Stats caveat:** `GET /v1/stats` exposes top-level state such as queued,
running, succeeded, failed, `queue_size`, and `avg_job_seconds`. It does not
show current sub-stage progress. For long jobs, use `/tmp/acestep-api.log` as
the source of truth for LM, DiT, CFG, and VAE progress.
**Cache caveat:** generated audio accreferences/acestep-shift-schedule.md
# ACE-Step Shift Schedule Taxonomy
Reference for the ACE-Step 1.5 **shift** parameter: what it controls in the
flow-matching diffusion process, how the three documented schedules
(`shift=1.0`, `shift=3.0`, and **continuous shift**) map to each model tier
(turbo, base, sft, xl-base, xl-mixed), and how to pick the right shift for
the request at hand. Load this when a request mentions `shift`,
timestep-shifting, or any of the four turbo variants (`turbo`,
`turbo-shift1`, `turbo-shift3`, `turbo-continuous`).
> **Status:** docs-only. Backed by `music-craft_ROADMAP.md` item **13i** and
> verified upstream against `ACE-Step-1.5/docs/en/INFERENCE.md` +
> `Tutorial.md`. No runtime changes; if the upstream semantics shift
> (e.g. a new default), update § 1 first.
## TL;DR
- **`shift` is a timestep-reshaping factor in flow-matching diffusion.**
When `shift != 1.0`, the scheduler applies
`t' = shift * t / (1 + (shift - 1) * t)` to every timestep `t` before
the step. Higher `shift` = the early (high-noise, structure-defining)
timesteps get **more compute**, low-noise detail timesteps get **less**.
- **Three documented schedules:**
- `shift=1.0` — **default in the upstream `GenerationParams`**. Flat
schedule; the original cosine/linear timesteps are untouched. Pairs
with turbo's few-step (8) inference.
- `shift=3.0` — **documented default for base / sft / xl-base / xl-sft
checkpoints** (per upstream Tutorial + INFERENCE.md). Steep schedule;
more effort on structure, less on micro-detail. The "best quality"
default in upstream docs.
- **continuous shift** — a time-varying schedule where the shift
factor changes across timesteps instead of staying constant.
Available in the `turbo-continuous` checkpoint (experimental) and
as a research lever on custom flow-matching pipelines.
- **Tier-to-shift mapping:**
| Tier | Default shift | Notes |
| --- | --- | --- |
| `turbo` (2B, 8 steps) | `1.0` (joint-distilled 1/2/3) | Most flexible; works at any shift in 1.0–5.0 |
| `turbo-shift1` | `1.0` | Distilled only at shift=1; richer details, weaker semantics |
| `turbo-shift3` | `3.0` | Distilled only at shift=3; clearer, drier, less orchestration |
| `turbo-continuous` | continuous (1–5) | Experimental; not thoroughly tested upstream |
| `base` / `xl-base` | `3.0` | Recommended; try `1.0` or `5.0` if defaults feel off |
| `sft` / `xl-sft` | `3.0` (experiment 1.0–5.0) | SFT is not strictly turbo; shift is **applicable** |
| `xl-mixed` (4B DiT + LM) | `3.0` | Inherits XL DiT default; same `1.0–5.0` envelope |
## 1. What `shift` controls
### 1.1 The formula
When `shift != 1.0`, the scheduler runs the standard timestep list
through:
```
t' = shift * t / (1 + (shift - 1) * t)
```
with `t` in `[0.0, 1.0]`. The transformation is monotonic; it just
**stretches or compresses** the noise schedule. The shape of the
denoising trajectory changes — early (high-noise) steps get a bigger
share of the step budget, or aAionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/luischarro/skills/music-craft",
"sourceUrl": "https://clawhub.ai/luischarro/skills/music-craft",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T08:23:16.095Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-luischarro-music-craft/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-luischarro-music-craft/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T08:23:16.095Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.1K downloads",
"href": "https://clawhub.ai/luischarro/music-craft",
"sourceUrl": "https://clawhub.ai/luischarro/music-craft",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T08:23:16.095Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.6.0",
"href": "https://clawhub.ai/luischarro/music-craft",
"sourceUrl": "https://clawhub.ai/luischarro/music-craft",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-07-30T11:36:34.536Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-luischarro-music-craft/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-luischarro-music-craft/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.6.0",
"description": "v1.6.0: discoverability reorder — hero sections (What is / Key Capabilities / Why use / Quick Start) at top of SKILL.md, licensing/Commercial-use gate moved to bottom. No behaviour, no env vars, no bins.",
"href": "https://clawhub.ai/luischarro/music-craft",
"sourceUrl": "https://clawhub.ai/luischarro/music-craft",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-07-30T11:36:34.536Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
