Skip to content
Productivity
Skill

/vibe

Vibe — reads your session and picks the perfect genre

From plugin
claude-music
2221 skills2 agents3 hooks
Install
$ npx -y skills add kennethleungty/claude-music --skill vibe --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/vibe

Context preview

The summary Claude sees to decide when to auto-load this skill.

Vibe — reads your session and picks the perfect genre

SKILL.md

vibe.SKILL.md
name: vibe
description: "Vibe — reads your session and picks the perfect genre"
model: haiku
allowed-tools: Bash

This skill is part of the claude-music plugin. Only invoke when the user explicitly uses the slash command.

Vibe

Auto-detect the right music based on what's happening in the current session. No user input needed — the DJ reads the room.

Instructions

You have the full conversation context. Pick the best music and play it in ONE step. Do NOT spawn an agent or delegate.

Step 1: Read the room and pick music

Read the genre metadata from sources.yml:

python3 -c "
import sys
try:
    import yaml
    with open('${CLAUDE_PLUGIN_ROOT}/config/sources.yml') as f:
        data = yaml.safe_load(f)
except ImportError:
    sys.exit(1)
for genre, info in data.items():
    print(f'{genre}:')
    for s in info.get('stations', []):
        tags = ', '.join(s.get('tags', []))
        print(f'  - {s[\"name\"]}: {s.get(\"description\", \"\")}')
        print(f'    tags: {tags}')
    print()
"

Using the tags and descriptions, match the session context to the best genre. Consider:

  • What the user has been working on (e.g. debugging, building a feature, reviewing code)
  • The general mood/pace of the session
  • Any explicit mood signals from the user

When in doubt, lean towards relaxing genres (lofi, ambient, classical). The user prefers a chill atmosphere. Only pick high-energy genres if the session strongly suggests it.

Step 2: Play it

Pick a specific station name from the matched genre, then:

"${CLAUDE_PLUGIN_ROOT}/scripts/music-controller.sh" play "<station name>"

Step 3: Respond

Return a message in EXACTLY this format:

**♪ Now playing {genre} — {station name}. {one-liner reason tied to the session} ♪**

  • If `takeover` is `true` in the JSON output: prefix with *Switched over from another session —*
  • If error about no audio player: run the `install_command` (if `has_sudo` is true) or `nosudo_hint` (if false) from the JSON, then retry play automatically.

Keep it to one line. Do not explain your reasoning.

Read more
Ships withclaude-music

Great music in your Claude Code sessions, with an AI DJ that understands your vibes

Get the whole plugin
Stats
23
Stars
0
Forks
Maintained
Maintenance
Shell
Language
MIT
License
5mo ago
Last commit
5mo ago
Created

Repo: kennethleungty/claude-music

Other skills on claude-music.