When the user invokes /vibe-sing, run the pipeline script. It distills the current session's emotional vibe into a Lyria music prompt (via Gemini) and composes a song.
What to do
-
Run the skill's launcher, passing through the user's argument verbatim:
~/.claude/skills/vibe-sing/run.sh <arg-if-any>Recognized arguments:
- (none) — 30-second clip (default)
pro— ~2 minute full songstop— kill the currently-playing song
-
The script handles everything: finding the current session's transcript JSONL, slicing the recent vibe-relevant text (skipping tool calls/results), calling Gemini for a mood prompt, calling Lyria, saving the mp3 to
~/.claude/skills/vibe-sing/generations/, andopen-ing the file so it plays. -
After the script returns, the last line of stdout is a JSON object with
mood_prompt,audio_file,model, andgemini_model. Report back to the user in at most two sentences:- One sentence quoting the mood prompt Gemini chose.
- One sentence with the file path.
Do not describe what the song is "about" — let the audio speak. Do not add commentary about whether the vibe seems right. The user will hear it and decide.
Errors
If the script fails (missing GOOGLE_API_KEY, no transcript, API error), surface the stderr message verbatim and stop — do not retry.
Notes
- Requires
GOOGLE_API_KEYin.envinside the skill dir (or in the environment). - The transcript reader explicitly skips tool calls and tool results to keep the vibe extraction focused on conversational tone.
- Both the transcript filter and the Gemini system prompt are designed to prevent corny "song about debugging React" output — the mood prompt should never reference programming, files, or specific topics.