← 返回 Skills 市场
r2d2-minero

Bumblebee

作者 r2d2-minero · GitHub ↗ · v1.2.2 · MIT-0
cross-platform ⚠ suspicious
205
总下载
0
收藏
0
当前安装
7
版本数
在 OpenClaw 中安装
/install bumblebee
功能描述
Two modes: (1) BUMBLEBEE — Communicate through music by playing exact lyric lines on Spotify, like Bumblebee from Transformers speaking through radio snippet...
使用说明 (SKILL.md)

Bumblebee + R2-DJ — Talk Through Music & Curate the Vibe 🐝🎧

Bumblebee + R2-DJ — Talk Through Music & Curate the Vibe 🐝🎧

Two sides of the same coin:

  • Bumblebee speaks through exact lyric clips — chaining song lines into sentences
  • R2-DJ reads the room and curates the perfect queue for the moment

Prerequisites

  • Spotify Premium account with an active device (phone, desktop, speaker)
  • OAuth tokens at projects/spotify/tokens.json (auto-refreshes)
  • Spotify app credentials at projects/spotify/.env (SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET)
  • Your own lyric index — see scripts/build-lyric-index.md for how to build one. Lyrics are copyrighted and not included in this skill. You'll need to curate your own lyric-index.json and optionally lyrics-db.json.

Core Workflow

1. Find the Right Lyrics

Search the lyric index for lines that literally say what you mean:

node scripts/lyric-engine.js search "phrase to find"

Returns matching lines with IDs, timestamps, and scores. Use literal phrases — search for what the lyrics actually say, not metaphors.

2. Play Lyric Clips

Send specific lyric lines to the active Spotify device:

node scripts/lyric-engine.js speak "artist::track::lineNum" "artist::track::lineNum"

Each clip plays its exact timestamp window, then advances to the next with a brief pause. Chain multiple IDs to build a sentence.

3. Check Devices

node scripts/bumblebee.js devices

Verify an active Spotify device exists before attempting playback. 🟢 = active.

Composing Messages — The Art of Speaking Through Music

Bumblebee doesn't paraphrase — it finds lyrics that literally say the words. The goal is chaining real song lines into a coherent sentence or feeling that the listener can understand.

Auto-Compose (Recommended)

Give the engine a message and it finds the best lyric chain:

node scripts/lyric-engine.js compose "I miss you and I want to see you"

Returns a chain of clips with a ready-to-use speak command. The engine uses greedy phrase-matching: longest matching phrase first, then fills gaps.

Manual Composition (Agent-Driven)

For more nuanced messages, the agent should:

  1. Rephrase the feeling as literal words someone would sing. "Tell her I love her" → search for "te quiero", "I love you", "eres lo que más quiero"
  2. Search for 2-4 key phrases that build the message:
    node scripts/lyric-engine.js search "I need you"
    node scripts/lyric-engine.js search "come back"
    node scripts/lyric-engine.js search "I'll be waiting"
    
  3. Pick the best line from each search — prefer lines where the matching phrase IS the whole line (not buried in a long verse)
  4. Chain them into a speak command:
    node scripts/lyric-engine.js speak "artist::track::3" "artist::track::12" "artist::track::7"
    

Composition Rules

  • Literal over metaphorical. Search for the actual words, not the feeling. "I'm sorry" → search "I'm sorry", not "regret".
  • Shorter lines > longer lines. A 5-word lyric that matches perfectly beats a 20-word verse where 3 words match.
  • Variety across songs. Don't chain 3 clips from the same song — it sounds like you're just playing the song. Mix artists.
  • Build an arc. Setup → core message → punctuation. Like a sentence: subject, verb, exclamation.
  • 2-4 clips is the sweet spot. 1 clip = too simple. 5+ = loses the listener.
  • Present it. After playing, show the listener what was said — the lyric text, the song, and optionally a translation if bilingual.
  • Hidden messages work too. You can spell out a name, an acronym, or a secret message by picking lines whose first words chain together.

Managing the Library

  • Add a song: node scripts/lyric-engine.js index "Artist" "Track"
  • Batch-index starter library: node scripts/lyric-engine.js batch-index
  • View all indexed songs: node scripts/lyric-engine.js catalog
  • Song details and moods: See references/song-library.md

Intent-Based Playback (Legacy)

The original bumblebee.js supports mood-based playback from a curated clips database:

node scripts/bumblebee.js play greeting
node scripts/bumblebee.js say greeting motivation celebration

Available intents: greeting, motivation, freedom, empathy, celebration, goodnight, warning, pride, lets_go.

Tips — Bumblebee

  • Always check devices first — "No active device" is the most common failure
  • Bilingual library — index has English and Spanish songs; search in either language
  • Clip duration — clips auto-trim to vocal length (~130ms per character). Short, punchy.
  • Present the lyrics — after playing, show the user what was said with translations if needed
  • Build emotional arcs — start soft, build to the punchline (e.g., setup → commitment → crescendo)
  • The agent is the composer — the engine finds lyrics, but YOU pick the best chain. Think like a DJ cutting between radio stations to form a sentence.
  • Index more songs = better vocabulary. The more songs indexed, the more phrases available. Run batch-index to start, then add songs that match your user's taste.
  • When compose fails, try rephrasing with common song vocabulary: "baby", "tonight", "forever", "hold on", "let me", "I need", "don't stop"

version: "1.0.0"

R2-DJ — Contextual Music Curation 🎧🤖

An AI DJ that reads the moment and plays the right music. Knows 5 frequency profiles that map to different states of mind and times of day.

Frequency Profiles

Frequency Vibe Time Key Artists
Architect Solo builder, focus, flow state 9AM-5PM, 10PM-2AM C418, Jarre, Tangerine Dream, Vangelis
Dreamer Synthwave, retro-futurism, night cruising 8PM-3AM Kavinsky, M83, Com Truise, Perturbator
Mexican Soul Heritage, roots, identity Anytime José José, Vicente, Natalia, Café Tacvba
Seeker Post-midnight processing, healing 11PM-6AM Solfeggio, 528Hz, 639Hz, ambient
Cinephile Film scores, thinking, reflecting 7PM-2AM Jóhannsson, Zimmer, Richter, Greenwood

Core Commands

Auto-Vibe (Let R2 Pick)

node scripts/r2-dj.js vibe

Reads time of day + recent listening → detects the right frequency → builds and plays a queue. Outputs a JSON summary for the agent's reply.

Force a Frequency

node scripts/r2-dj.js vibe --frequency seeker
node scripts/r2-dj.js vibe --frequency architect --device iPhone

Playback Control

node scripts/r2-dj.js now        # What's playing
node scripts/r2-dj.js pause      # Pause
node scripts/r2-dj.js skip       # Next track
node scripts/r2-dj.js volume 50  # Set volume
node scripts/r2-dj.js play "Nils Frahm Says"        # Search + play
node scripts/r2-dj.js play spotify:track:xxx         # Play URI directly
node scripts/r2-dj.js search "ambient electronic"    # Search tracks

Context & Info

node scripts/r2-dj.js context      # Time, recent plays, detected frequency, devices
node scripts/r2-dj.js frequencies   # List all frequency profiles
node scripts/r2-dj.js history       # Recent listening history
node scripts/r2-dj.js devices       # Spotify devices

How the Agent Should Use R2-DJ

  1. "Play music" / "what should I listen to"r2-dj.js vibe (auto-detect)
  2. "I need to focus"r2-dj.js vibe --frequency architect
  3. "Something for the drive"r2-dj.js vibe --frequency dreamer
  4. "Wind me down"r2-dj.js vibe --frequency seeker
  5. "Play [specific song]"r2-dj.js play "song name"
  6. Mood descriptions → Pick the closest frequency, then vibe --frequency \x3Ckey>

Tips — R2-DJ

  • Auto-vibe uses time + recent listening to pick the frequency — it's smart, trust it
  • The agent can also manually build curated queues with inline Spotify API calls for special moments
  • Frequencies aren't rigid — if recent listening suggests Architect at midnight, that wins over time-based detection
  • Present the tracklist after playing — show what you queued and why
  • JSON summary after ---JSON_SUMMARY--- is for agent parsing, not user display
安全使用建议
This skill appears to implement exactly what it claims: controlling Spotify and composing messages from lyric clips. Important things to consider before installing: - Credentials & tokens: the skill requires a Spotify client ID/secret and OAuth tokens (access_token + refresh_token) stored at projects/spotify/.env and projects/spotify/tokens.json. The code will read and overwrite tokens.json to auto-refresh tokens. Only give these values if you trust the skill and have created a dedicated Spotify app for it. - Metadata mismatch: the registry listing shows no required env vars, but SKILL.md/code require credentials — treat that as a packaging error and ask the publisher to fix the manifest before installing. - Token permanence: refresh_token can be long-lived; if you later revoke the app or tokens, remove tokens.json. Consider creating a throwaway Spotify app/client_secret for this skill rather than reusing high-value credentials. - Review code yourself or run in a sandbox: the network endpoints in the code are spotify.com and lrclib.net (expected). If you are not comfortable auditing the JS, run the skill in a container or isolated environment and monitor network traffic. - Autonomy: because the skill persists tokens, it can control playback autonomously once installed. If you want to prevent background actions, keep the skill user-invocable only and avoid granting always:true. What would change this assessment: if the registry metadata were corrected to declare the required config paths and env vars (projects/spotify/.env and tokens.json) and the publisher provided a clear security statement about how tokens are stored and used, the transparency issue would be resolved and the skill would be closer to 'benign'.
功能分析
Type: OpenClaw Skill Name: bumblebee Version: 1.2.2 The 'bumblebee' skill bundle is a legitimate music integration for OpenClaw that allows an agent to play specific song clips and curate Spotify playlists. The scripts (bumblebee.js, lyric-engine.js, and r2-dj.js) implement standard OAuth2 flows for Spotify, fetch synced lyrics from the public LRCLIB API, and manage playback via the Spotify Web API. All file operations are confined to the expected workspace directories for configuration and token storage, and network communication is limited to authorized Spotify and lyric provider endpoints. No evidence of data exfiltration, malicious execution, or harmful prompt injection was found.
能力标签
requires-oauth-token
能力评估
Purpose & Capability
The skill's name/description (speak via lyric clips + curate playlists) matches the included code (lyric-engine.js, bumblebee.js, r2-dj.js) and their use of the Spotify Web API and a lyric index. However the registry metadata declares no required env vars/credentials while the SKILL.md and code clearly require Spotify client credentials and OAuth tokens stored under projects/spotify — an inconsistency between declared requirements and actual needs.
Instruction Scope
SKILL.md and the scripts are explicit about their runtime behavior: building/reading a lyric index, using LRCLIB to fetch synced lyrics, reading/writing projects/spotify/tokens.json and .env, calling api.spotify.com/accounts.spotify.com and lrclib.net, and controlling playback on active Spotify devices. All of these steps are within the stated purpose (play clips, search lyrics, curate queues). There are no instructions to read unrelated system files or exfiltrate data to unknown endpoints.
Install Mechanism
This is an instruction-and-code skill with no installer; files are meant to be copied into the OpenClaw workspace. There are no external archives or downloads executed by the install spec. Network calls at runtime go to expected services (Spotify APIs and LRCLIB).
Credentials
The actual runtime requires sensitive credentials: a Spotify client ID/secret (projects/spotify/.env) and OAuth tokens including a long-lived refresh_token saved to projects/spotify/tokens.json. Those credentials are necessary for playback/control and auto-refresh, but the registry metadata did not declare them. The skill reads and writes these token files (saveTokens/refreshToken), so users must trust the code that handles their refresh_token and client secret. This is proportionate to the feature, but the metadata omission is a transparency/security concern.
Persistence & Privilege
The skill does not request 'always: true' or system-wide privileges. It reads/writes files under its own workspace (projects/spotify, scripts/lyric-index.json, lyrics-db.json) and refreshes/stores tokens there. It does not modify other skills or global agent settings. Autonomous invocation is allowed by default (disable-model-invocation is false) — normal for skills — but note that with stored tokens the skill can perform API operations without re-authorizing the user each time.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install bumblebee
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /bumblebee 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.2.2
Version 1.2.2 - No file changes detected in this release. - Documentation, features, and workflows remain the same as the previous version.
v1.2.1
- Added new `lyrics-db.json` to scripts for expanded lyric access. - Updated `lyric-index.json` with the latest lyric entries and structure improvements. - SKILL.md reorganized and updated for clarity; redundant header removed and version info added. - No breaking changes to functionality; updates are focused on documentation and expanding resources.
v1.2.0
v1.2: Smarter composition engine (greedy phrase-chunking, song variety, consecutive word matching), tighter clip timing (vocal duration estimate), full composition guide in SKILL.md
v1.1.0
Initial clean release — Bumblebee + R2-DJ skill for Spotify. Users build their own lyric index.
v1.0.2
Users build their own lyric index — see scripts/build-lyric-index.md for setup options (manual, API, or agent-assisted)
v1.0.1
Removed copyrighted lyric databases. Users now build their own index — see scripts/build-lyric-index.md
v1.0.0
Initial release
元数据
Slug bumblebee
版本 1.2.2
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 7
常见问题

Bumblebee 是什么?

Two modes: (1) BUMBLEBEE — Communicate through music by playing exact lyric lines on Spotify, like Bumblebee from Transformers speaking through radio snippet... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 205 次。

如何安装 Bumblebee?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install bumblebee」即可一键安装,无需额外配置。

Bumblebee 是免费的吗?

是的,Bumblebee 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Bumblebee 支持哪些平台?

Bumblebee 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Bumblebee?

由 r2d2-minero(@r2d2-minero)开发并维护,当前版本 v1.2.2。

💬 留言讨论