← Back to Skills Marketplace
twocode

Gen Music

by twocode · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
268
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install gen-music
Description
Generate songs from prompts or lyrics through an ACE-Step-compatible API backend. Use when users want text-to-music, lyrics-to-song, fast prompt iteration, s...
README (SKILL.md)

ACE-Step Text To Music

Use an ACE-Step-compatible API backend for prompt-to-song and lyrics-to-song requests. This skill does not install or bundle ACE-Step, model weights, or the API server.

Prerequisite

Before using this skill, make sure you already have access to an ACE-Step-compatible API backend. This can be a local server, usually at http://127.0.0.1:8001, or a remote compatible endpoint. If the backend is missing or stopped, this skill cannot generate music.

Quick start

python3 {baseDir}/scripts/generate.py --prompt "playful beach pop song about rising waves"
python3 {baseDir}/scripts/generate.py --prompt "happy indie pop with bright guitars" --lyrics-file /path/to/lyrics.txt --duration 60

Defaults are tuned for fast local iteration:

  • batch_size=1 to avoid duplicate variants unless explicitly requested
  • audio_format=mp3
  • sample_mode=text2music
  • thinking=false unless the user asks for heavier LM-assisted generation
  • finished audio is copied into a stable output folder instead of leaving only temp API paths

When to use

  • An ACE-Step-compatible API backend is already available, commonly a local server at http://127.0.0.1:8001 but possibly a remote endpoint
  • The user wants text-to-music, lyrics-to-song, or quick style variations
  • The user wants a single command that submits, polls, and returns saved files
  • The user wants music generated locally and then played on Clawatch
  • The user already has access to a local or remote ACE-Step-compatible backend

Run

# Basic prompt
python3 {baseDir}/scripts/generate.py --prompt "playful synth-pop song about sunrise waves"

# With lyrics
python3 {baseDir}/scripts/generate.py \
  --prompt "cute upbeat summer beach song" \
  --lyrics-file /path/to/lyrics.txt \
  --duration 60

# Two variants
python3 {baseDir}/scripts/generate.py \
  --prompt "dreamy city-pop ocean groove" \
  --duration 45 \
  --batch-size 2

# Enable heavier LM planning only when needed
python3 {baseDir}/scripts/generate.py \
  --prompt "cinematic anthem about a storm becoming calm" \
  --duration 60 \
  --thinking

Useful flags:

  • --duration 10..600
  • --lyrics or --lyrics-file
  • --batch-size 1..8
  • --thinking
  • --model acestep-v15-turbo
  • --out-dir /path/to/output
  • --base-url http://127.0.0.1:8001 for local backends
  • --base-url https://your-remote-endpoint for remote backends

Clawatch playback

If the user also wants the result played on Clawatch:

  1. Run the generator and wait for the saved output file paths.
  2. Pick the final .mp3 path from the script output or manifest.json.
  3. Call clawatch_play_audio with:
    • imei: the explicit watch IMEI
    • filePath: the saved local audio path
    • title: optional short label

Do not pass ACE-Step temp URLs directly if the helper already copied a stable local file. Prefer the saved file path.

Config

The script accepts CLI flags first, then env vars, then OpenClaw skill config.

Supported env vars:

  • ACESTEP_API_BASE_URL
  • ACESTEP_API_KEY
  • ACESTEP_OUTPUT_DIR

Use ACESTEP_API_BASE_URL or the OpenClaw config entry to switch between local and remote ACE-Step-compatible backends.

Optional OpenClaw config in ~/.openclaw/openclaw.json:

{
  skills: {
    entries: {
      "gen-music": {
        baseUrl: "http://127.0.0.1:8001",
        apiKey: "",
        outputDir: "~/Projects/tmp/ace-step"
      }
    }
  }
}

Notes

  • Check backend health first if needed: curl http://127.0.0.1:8001/health or the same path on your remote endpoint
  • If the API returns temp /v1/audio?path=... URLs, the helper copies those files into the chosen output directory and writes a manifest.json
  • Prefer batch-size 1 for efficient prompt iteration; raise it only when the user explicitly wants variants
Usage Guidance
This skill appears to do what it says: it is a Python client that talks to an ACE-Step-compatible API (default localhost). Before installing, confirm you have a trusted ACE-Step backend (local or remote). If you point it at a remote endpoint or provide ACESTEP_API_KEY, treat that endpoint and key as sensitive — the script will send prompts, lyrics, and receive audio payloads from that server. Be aware the tool will read OpenClaw config files (~/.openclaw/openclaw.json and /data/.clawdbot/openclaw.json) if present and will write output files to the configured output directory (default under your home or ./tmp). If you intend to use Clawatch playback, you will need to supply the watch IMEI to the playback call; do not pass backend temp URLs directly per the guidance. If any of those behaviors are unexpected, inspect or run the included scripts in a sandbox before granting production access.
Capability Analysis
Type: OpenClaw Skill Name: gen-music Version: 0.1.0 The script `scripts/generate.py` contains a path traversal vulnerability in the `local_source_path` and `save_outputs` functions. It blindly trusts file paths or query parameters returned by the API backend, allowing a potentially malicious or compromised server to trigger the copying of arbitrary local files (e.g., sensitive configuration or identity files) into the skill's output directory. While this behavior is documented in `SKILL.md` as a convenience for local API integration, the lack of input validation on the source paths poses a significant risk of local data exposure.
Capability Assessment
Purpose & Capability
Name/description (text-to-music via ACE-Step) align with the included Python script and SKILL.md. Required binary python3 is appropriate. The script communicates only with an ACE-Step-compatible base_url and does not request unrelated cloud credentials or services.
Instruction Scope
SKILL.md and the script instruct the agent to submit jobs, poll results, copy audio into an output dir, and optionally hand files to Clawatch. The script also reads OpenClaw config files (~/.openclaw/openclaw.json and /data/.clawdbot/openclaw.json) to obtain per-skill settings — this is reasonable for configuration but means the skill will attempt to read those paths if present.
Install Mechanism
Instruction-only skill with no install spec. No external archives or third-party installers are fetched or executed by the skill bundle itself.
Credentials
The registry lists no required env vars; the SKILL.md documents optional ACESTEP_API_BASE_URL, ACESTEP_API_KEY, and ACESTEP_OUTPUT_DIR. Requesting an API key for a remote ACE-Step backend is proportionate. Users should note the API key is used as an authorization header when provided.
Persistence & Privilege
always is false and the skill does not attempt to persist itself or modify other skills. It writes generated audio and a manifest into a user-configurable output directory only.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install gen-music
  3. After installation, invoke the skill by name or use /gen-music
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
- Initial release of gen-music for song generation via ACE-Step-compatible API backend. - Supports text-to-music and lyrics-to-song with fast local or remote prompt iteration. - Generates and saves stable `.mp3` files for easy playback, including on Clawatch. - CLI script offers flexible options: duration, lyrics file, batch size, output directory, and LM planning. - Configurable via CLI flags, environment variables, or OpenClaw config JSON. - Requires separate ACE-Step backend; skill does not bundle server or model weights.
Metadata
Slug gen-music
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Gen Music?

Generate songs from prompts or lyrics through an ACE-Step-compatible API backend. Use when users want text-to-music, lyrics-to-song, fast prompt iteration, s... It is an AI Agent Skill for Claude Code / OpenClaw, with 268 downloads so far.

How do I install Gen Music?

Run "/install gen-music" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Gen Music free?

Yes, Gen Music is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Gen Music support?

Gen Music is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Gen Music?

It is built and maintained by twocode (@twocode); the current version is v0.1.0.

💬 Comments