Vibe sing
Skill harajlim/vibe-sing
Generate a song that captures the vibe of the current Claude Code session. Reads the session transcript, asks Gemini for a non-corny user-centric music prompt, calls Google Lyria, and auto-plays the result. Args: `pro` for a ~2 minute version (default is 30s clip), `stop` to kill the currently-playing song.From its SKILL.md
npx -y skills add harajlim/vibe-singAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- reads credentialsReads from 2 credential sources: `GOOGLE_API_KEY` and 1 more.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `~/.claude/skills/vibe-sing/run.sh <arg-if-any>`.
SKILL.md
2.2 KB, 430 tokens by cl100k_base, as published. Nobody here has run it
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.
What ships with it: 9 files
1441.9 KB alongside SKILL.md, 2 of them executable
examples/
- we-cooked.mp3727.2 KB
- we-cooked.mp4698.1 KB
- .env.example167 B
- .gitignore66 B
- LICENSE1.0 KB
- README.md3.3 KB
- requirements.txt41 B
- run.shruns354 B
- vibe_sing.pyruns11.7 KB