← Back to Skills Marketplace
scikkk

Songmaker

by scikkk · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
258
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install songmaker
Description
Generate a complete song from a text description — AI writes lyrics then composes music. Use when users want to create a song, turn a description into audio,...
README (SKILL.md)

SenseAudio Songmaker

Two-step song creation: generate lyrics → compose music. If the user already has lyrics, skip to Step 2.

Workflow

用户描述 → [Step 1] 生成歌词 → 用户确认/修改 → [Step 2] 生成歌曲 → 返回链接
                                ↑ 用户自带歌词时跳过 Step 1

Step 1: Generate Lyrics

Skip this step if the user provides their own lyrics.

LYRICS_RESP=$(curl -s -X POST "https://api.senseaudio.cn/v1/song/lyrics/create" \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"prompt\": \"\x3CUSER_PROMPT>\", \"provider\": \"sensesong\"}")

TASK_ID=$(echo $LYRICS_RESP | jq -r '.task_id // empty')

If task_id is present, poll until done:

while true; do
  POLL=$(curl -s "https://api.senseaudio.cn/v1/song/lyrics/pending/$TASK_ID" \
    -H "Authorization: Bearer $SENSEAUDIO_API_KEY")
  STATUS=$(echo $POLL | jq -r '.status')
  { [ "$STATUS" = "SUCCESS" ] || [ "$STATUS" = "FAILED" ]; } && break
  sleep 3
done
LYRICS=$(echo $POLL | jq -r '.response.data[0].text')

If no task_id (sync response), read directly:

LYRICS=$(echo $LYRICS_RESP | jq -r '.data[0].text')

Show the lyrics to the user and ask for confirmation or edits before proceeding.

Lyrics Format

The API uses structured section tags separated by ;:

[intro-medium] ; [verse] 第一段歌词内容 ; [chorus] 副歌内容 ; [bridge] 桥段 ; [outro-short]

Common tags: [intro-short] [intro-medium] [verse] [chorus] [bridge] [outro-short] [outro-medium] [inst-short]

If the user provides plain lyrics without tags, wrap them: [verse] \x3Clyrics> ; [chorus] \x3Cchorus>


Step 2: Generate Song

Build the request body from user preferences:

User says Parameter
男声 / 男歌手 "vocal_gender": "m"
女声 / 女歌手 "vocal_gender": "f"
纯音乐 / 无人声 "instrumental": true (omit lyrics)
风格描述(摇滚/流行/古风…) "style": "\x3C描述>"
不要某种风格 "negative_tags": "\x3C描述>"
SONG_RESP=$(curl -s -X POST "https://api.senseaudio.cn/v1/song/music/create" \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"sensesong\",
    \"lyrics\": \"\x3CLYRICS>\",
    \"title\": \"\x3CTITLE>\",
    \"vocal_gender\": \"\x3Cf|m>\",
    \"style\": \"\x3CSTYLE>\"
  }")

SONG_TASK=$(echo $SONG_RESP | jq -r '.task_id')

Song generation always returns a task_id. Poll until done (may take 30–120s):

while true; do
  POLL=$(curl -s "https://api.senseaudio.cn/v1/song/music/pending/$SONG_TASK" \
    -H "Authorization: Bearer $SENSEAUDIO_API_KEY")
  STATUS=$(echo $POLL | jq -r '.status')
  { [ "$STATUS" = "SUCCESS" ] || [ "$STATUS" = "FAILED" ]; } && break
  echo "生成中... ($STATUS)"
  sleep 5
done

Output

On SUCCESS, extract and display:

echo $POLL | jq -r '.response.data[0] | "标题:\(.title)\
时长:\(.duration) 秒\
音频:\(.audio_url)\
封面:\(.cover_url)"'

Example output:

标题:夏日物语
时长:187 秒
音频:https://cdn.senseaudio.cn/songs/xxx.mp3
封面:https://cdn.senseaudio.cn/covers/xxx.jpg

On FAILED, report the status and suggest retrying with a different style or simpler lyrics.

Usage Guidance
This skill appears internally consistent, but before installing: (1) Verify you trust the provider (https://senseaudio.cn) because your SENSEAUDIO_API_KEY will be sent to their API and may incur costs or expose usage metadata. (2) Treat the API key as a secret—do not reuse a high-privilege key you rely on elsewhere; create a scoped key if the provider supports it and be ready to revoke it. (3) Review the provider's privacy/terms for uploaded text/audio and any retention or licensing of generated content. (4) Because the skill runs shell commands using curl, ensure the agent environment is isolated from sensitive networks/credentials. (5) If you need higher assurance, request source code or an official SDK/verification from the publisher before granting the API key.
Capability Analysis
Type: OpenClaw Skill Name: songmaker Version: 1.0.0 The skill provides a legitimate integration for the SenseAudio service (senseaudio.cn) to generate lyrics and music. It uses standard shell commands (curl, jq) to interact with the service's API endpoints for task creation and polling. No evidence of malicious intent, data exfiltration, or unauthorized execution was found; the use of the SENSEAUDIO_API_KEY is consistent with the stated purpose of the skill.
Capability Assessment
Purpose & Capability
Name/description (song generation) match the declared requirements: SENSEAUDIO_API_KEY and the use of senseaudio.cn API endpoints. Required binaries (curl, jq) are appropriate for the provided bash examples.
Instruction Scope
SKILL.md contains concrete curl/jq examples that call senseaudio.cn endpoints to generate lyrics and music and then poll task endpoints. It does not instruct reading unrelated files, other env vars, or sending data to third-party endpoints beyond the provider. It asks to show lyrics to the user for confirmation before proceeding.
Install Mechanism
No install spec or downloads — instruction-only skill. Nothing is written to disk by the skill itself beyond what the agent normally does when following the provided shell commands.
Credentials
Only a single API credential (SENSEAUDIO_API_KEY) is required and declared as primaryEnv. The key is consistent with the described provider and used in all example requests. No unrelated credentials or broad config paths are requested.
Persistence & Privilege
always:false (default), and the skill does not request elevated or persistent system-wide privileges. Autonomous invocation is allowed by platform default but not combined with other red flags.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install songmaker
  3. After installation, invoke the skill by name or use /songmaker
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of SenseAudio Songmaker. - Generate a complete song from a text description: auto-writes lyrics and composes music. - Supports user-supplied lyrics or full AI creation (lyrics → music). - Customization options for style, vocal gender, and instrumental/background music. - Returns downloadable audio and cover art links upon completion.
Metadata
Slug songmaker
Version 1.0.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is Songmaker?

Generate a complete song from a text description — AI writes lyrics then composes music. Use when users want to create a song, turn a description into audio,... It is an AI Agent Skill for Claude Code / OpenClaw, with 258 downloads so far.

How do I install Songmaker?

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

Is Songmaker free?

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

Which platforms does Songmaker support?

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

Who created Songmaker?

It is built and maintained by scikkk (@scikkk); the current version is v1.0.0.

💬 Comments