giggle-generation-music
Original:🇺🇸 English
Translated
1 scriptsChecked / no sensitive code detected
Use when the user wants to create, generate, or compose music—whether from text description, custom lyrics, or instrumental background music. Triggers: generate music, write a song, compose, create music, AI music, background music, instrumental, beats.
8installs
Sourcegiggle-official/skills
Added on
NPX Install
npx skill4agent add giggle-official/skills giggle-generation-musicTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Giggle Music
Source: giggle-official/skills · API: giggle.pro
Generates AI music via giggle.pro. Supports simplified and custom modes. Submit task → query when ready. No polling or Cron.
API Key: Set system environment variable . Log in to Giggle.pro and obtain the API Key from account settings.
GIGGLE_API_KEYImportant: Never passin exec'sGIGGLE_API_KEYparameter. API Key is read from system environment variable.env
No Retry on Error: If script execution encounters an error, do not retry. Report the error to the user directly and stop.
Interaction Guide
Mode Selection (priority: high to low)
| User input | Mode | Description |
|---|---|---|
| User provides full lyrics | Custom mode (B) | Must be lyrics, not description |
| User requests instrumental/background music | Instrumental mode (C) | No vocals |
| Other cases (description, style, vocals, etc.) | Simplified mode (A) | Use user description as prompt; AI composes |
Key rule: If the user does not provide lyrics, always use simplified mode A. Use the user's description exactly as; do not add or rewrite. E.g. user says "female voice, 1 min, ancient romance", use--promptdirectly.--prompt "female voice, 1 min, ancient romance"
Guidance when info is lacking
Only when the user input is very vague (e.g. "generate music" with no description), ask:
Question: "What type of music would you like to generate?"
Options: AI compose (describe style) / Use my lyrics / InstrumentalExecution Flow: Submit and Query
Music generation is asynchronous (typically 1–3 minutes). Submit a task to get , then query when the user wants to check status.
task_idStep 1: Submit Task
First send a message to the user: "Music generation submitted. Usually takes 1–3 minutes. You can ask me about the progress anytime."
A: Simplified Mode
bash
python3 scripts/giggle_music_api.py --prompt "user description"B: Custom Mode
bash
python3 scripts/giggle_music_api.py --custom \
--prompt "lyrics content" \
--style "pop, ballad" \
--title "Song Title" \
--vocal-gender femaleC: Instrumental
bash
python3 scripts/giggle_music_api.py --prompt "user description" --instrumentalResponse example:
json
{"status": "started", "task_id": "xxx"}Store task_id in memory ():
addMemorygiggle-generation-music task_id: xxx (submitted: YYYY-MM-DD HH:mm)Step 2: Query When User Asks
When the user asks about music progress (e.g. "is my music ready?", "progress?"), run:
bash
python3 scripts/giggle_music_api.py --query --task-id <task_id>Output handling:
| stdout pattern | Action |
|---|---|
| Plain text with music links (🎶 音乐已就绪) | Forward to user as-is |
| Plain text with error | Forward to user as-is |
JSON | Tell user "Still in progress, please ask again in a moment" |
Link return rule: Audio links in stdout must be full signed URLs (with Policy, Key-Pair-Id, Signature query params). Correct: . Keep as-is when forwarding.
https://assets.giggle.pro/...?Policy=...&Key-Pair-Id=...&Signature=...Recovery
When the user asks about previous music progress:
- task_id in memory → Run directly. Do not resubmit
--query --task-id xxx - No task_id in memory → Tell the user, ask if they want to regenerate
Parameter Reference
| Parameter | Description |
|---|---|
| Music description or lyrics (required in simplified mode) |
| Enable custom mode |
| Music style (required in custom mode) |
| Song title (required in custom mode) |
| Generate instrumental |
| Vocal gender: male / female (custom mode only) |
| Query task status |
| Task ID (use with --query) |