An open-source Agent Skill for discovering real, unlikely, surprisingly coherent music across eras, textures, geographic scenes and microgenres. Delivered by an extravagantly self-important, passive-aggressive record-store clerk who considers your listening habits a public infrastructure problem.
Start here — load, setup, go
Try the easy way first. Many agents can read a skill straight from GitHub. No folder archaeology required unless your particular host insists on it.
1. Load the skill. Copy this prompt into your AI assistant. On GitHub, use the Copy icon at the top-right of the code block.
Load Hipster Music Generator from GitHub:
focustimer-dev/hipster-music-generator
Read SKILL.md and linked references.
Use my platform's supported loading method.
Confirm what loaded and if it persists.
Using Claude? Copy this prompt instead
Claude's Plugin and Skill uploaders need different ZIP files. Use this prompt rather than the universal one:
Load Hipster Music Generator from GitHub:
focustimer-dev/hipster-music-generator
Read SKILL.md and linked references.
Try a supported persistent install.
Before suggesting a ZIP, identify my
Claude upload screen.
Plugins: use the Claude Plugin ZIP.
Skills: use the Claude Skill ZIP.
Do not interchange these two files.
If the screen is unknown, ask me once.
Confirm what loaded and if it persists.
Claude ZIP note: The Plugins uploader needs .claude-plugin/plugin.json at the archive root; the Skills uploader needs hipster-music-generator/SKILL.md. Never interchange the two archives. See the Claude installation guide for the correct downloads.
2. Run setup in the loaded skill. Spotify is now the default listening and publishing preference: the skill checks whether Spotify can actually write playlists in your current AI platform, then shows the defaults without a service-selection interview. If your platform cannot publish to Spotify—or you simply prefer another service—use setup change YouTube Music (on Gemini) or another explicit service change. Run setup again whenever you want to change your preferences or refresh current music-service capabilities; setup status shows what is known.
setup
3. Make some music. Once setup says you're ready:
go
By default, go curates 12 real tracks and attempts to publish to your chosen streaming service if a genuine authorized playlist writer is accessible. If publishing isn't available, it returns the music and clearly says it wasn't saved. Setup is recommended, not mandatory: go works without it.
Portability note: Not every host can install directly from a GitHub URL or remember preferences across chats. Setup should tell you when your choices are session-only and offer a reusable profile. It cannot connect an account or unlock an unavailable publisher by itself. Manual installation options are below.
Everyday commands
Playlists & modifiers
Modifiers shape the sound, not just a genre label. Combine moods, speeds and track counts freely:
| Say | Musical direction |
|---|---|
go | 12-track sonic surprise; attempt to publish |
go weird | Stranger, still musically defensible connections |
go fast angry | Rhythmic propulsion with bite |
go chill | Warm, easy listening—not necessarily slow |
go sad | Melancholy and yearning without compulsory ballads |
go sad fast | Cathartic music with some forward momentum |
go weird slow | Patient, hypnotic strangeness |
go short / go long | 6 / 24 tracks |
go fast 30 | 30 tracks with the requested energy |
go, text only | Curate without attempting a streaming write |
less snark | Reduce the curator's entirely unearned superiority |
An explicit count overrides the ordinary length default; 50 tracks is a soft quality target, not a platform limit. If the host returns fewer than requested, it should disclose the difference rather than quietly congratulating itself.
Or go beyond the shorthand:
Give me twelve real tracks connecting Thai molam and Italian library funk.
Make the transitions musically defensible, not just geographically surprising.
Setup & preferences
| Say | What happens |
|---|---|
setup | Default to Spotify, check actual writer availability, and set defaults without an interview |
setup status | Review known preferences and available service capabilities |
setup change YouTube Music | Explicitly change the publishing preference (particularly useful on Gemini) |
setup change Spotify | Restore Spotify as the preferred publishing service |
setup change 24 tracks | Change the default playlist length |
setup again | Refresh service discovery while retaining existing choices |
Setup does not generate a playlist. It won't store your preferences outside the current session unless the host genuinely supports user-approved persistence. Spotify is the default preference, not a guaranteed publisher: Gemini's Spotify media connection is documented for search/play, not playlist creation, so Gemini users can opt into setup change YouTube Music. Choosing a service is not the same as confirming that its playlist-writing tool is accessible.
What you're installing
- Sonic-first discovery. Era + audible texture/production + geographic scene + microgenre. The expanded research map now explores Lao/Saigon archives, qawwali, Indigenous rock, Memphis rap/sigilkore, Indonesian punk, non-English psychedelia and nonbinary country—without quotas or stereotypes. Being obscure on the same continent is not a musical bridge.
- Real songs. Verify artist, recording, version and catalog availability instead of inventing remarkably convenient B-sides.
- Actual sequencing. An intentional listening arc and a concrete musical reason for each track.
- Honest publishing. A connected account is not necessarily an exposed playlist-writing tool; the skill distinguishes curation from provider-confirmed saving.
- An insufferable curator. Snark, passive aggression and extravagantly unearned confidence—with evidence-based music research underneath. Even this clerk knows not to mock someone who is genuinely hurting. Say
less snarkif you insist.
Our needlessly particular manifesto — for the discerning listener
- Obscurity is not a personality. It is, however, an extremely convenient substitute for one.
- A sonic connection must be real. We refuse to pair tracks just because both were discovered in a converted warehouse.
- There is no shame in a shiny chorus. A gloriously overproduced 1980s pop-soul selection may be the most convincing curveball.
- We verify the music. Your favorite Bulgarian synth-funk B-side ought to exist before we make you feel inferior for not knowing it.
- No gatekeeping at the door. Just an imaginary bouncer who insists your handlebars are insufficiently mustachioed.
Installation when the easy way needs help
Start with the three steps above: load → setup → go. Use host-specific installation or manual file placement only when the agent cannot load and retain the skill directly. After any manual install, run setup before your first go. Music-account authorization remains separate.
ChatGPT — plugin setup and Work
If ordinary GitHub loading doesn't persist, use Plugin Creator to build/install the existing plugin manifest and packaged skill. Run setup (or the dedicated setup skill) to choose music-service preferences and inspect genuinely exposed connected music services. Project instructions are a fallback without plugin support.
Observed: ChatGPT Work has published to Spotify from a single go; ordinary Chat on Android required selecting Hipster Music Generator and Spotify together. Neither behavior is a universal guarantee. The detailed runtime notes are collapsed under Field reports below.
Gemini — direct GitHub loading and native skill upload
A user successfully asked Gemini to load this GitHub skill and then invoked YouTube Music to generate a playlist. The observation doesn't establish a persistent GitHub-based install across chats.
If the agent cannot load or retain it, download the ready-to-upload Gemini Skill ZIP and use Gemini web → Customize → Skills → Create → Upload. No terminal or file-building step needed. Maintainers can still generate the ZIP with python scripts/build_agent_packages.py --zip. Uploaded skills don't auto-sync from GitHub. See the Gemini guide and Android test cases. Gemini CLI is a separate installation path.
Claude — ready-to-upload skill, native Spotify connector, or Claude Code plugin
Start with the GitHub-link prompt. On Claude's Skills upload screen, use the Claude Skill ZIP. On Claude's Plugins upload screen, use the Claude Plugin ZIP instead: the skill-only ZIP fails plugin validation because it lacks .claude-plugin/plugin.json. These are different uploaders. Custom Skills may require code execution enabled. Separately add Spotify to Claude if you want it to publish playlists; Spotify Premium is advertised for personalized playlist creation. Then setup → go.
Claude's Spotify connector requires Premium for personalized prompt-generated playlists; that does not prove it can insert 25 exact duplicates. Generated cards or previews are not saved playlists unless the service/library confirms persistence. If Spotify refuses a later operation but playlists were already created, reconcile the existing playlists, songs, order and description before claiming a total failure. A later denial does not prove 0 saved, and another playlist must not be created automatically. Claude's Premium-denial troubleshooting. Claude's commentary should use vivid playlist titles, a short snarky proposed description and track-specific liner notes; if it's generic, follow the Claude writing-quality troubleshooting guide. Claude Code users can install the existing GitHub marketplace plugin. These are different environments: having Spotify connected in Claude chat does not by itself expose Spotify tools to Claude Code. Full Claude instructions · optional Claude Plugin ZIP. There is no end-to-end live Claude account test yet.
Meta Muse — official Spotify support; skill installation requires verification
Muse personal agent already connects to Spotify for discovery, playback, and playlist creation. Try the GitHub-link prompt, run setup, and ask Muse whether it can retain the workflow; don't assume a consumer Muse custom-skill ZIP installer exists. Meta's developer Muse Code has a documented SKILL.md installer, but it is a different product.
See the Muse-specific GitHub-first prompt and setup guide. A working consumer Spotify connector does not confirm exact recording order or persistent installation of our skill.
Other agents — manual fallback
Ask the agent to load this repository first. If it truly requires filesystem placement, follow the generic Agent Skills guide and keep SKILL.md alongside all its referenced files.
Streaming services and permissions
Curation doesn't require a streaming account. Playlist publication requires an exposed, authorized write-capable service connection. The repository contains plans and integration contracts, not bundled Spotify/YouTube/Apple OAuth credentials or deployed publishers.
See the adapter contract and provider notes for Spotify, YouTube Music and Apple Music. A search result, account link or generated URL alone is not evidence of successful publication.
The back room
For anyone who reads the liner notes, the iteration history and platform observations are still here. They simply no longer interrupt the first listen.
Field reports & compatibility notes
These are listener-reported tests from October 16–17, 2026, not guaranteed capabilities on every account. Short entries keep this table easier to scan on mobile.
| AI + service | Observed | Not yet verified |
|---|---|---|
| ChatGPT Work → Spotify | go created a playlist | Exact versions/order; one run had 6 rather than 12 tracks |
| ChatGPT → Spotify | Selecting both apps saved 12 tracks | Skill-only writer routing (issue #1); exact versions/order |
| Gemini → YouTube Music | Six-track playlist generated | Save to library and exact versions/order; 12-track routing needs retest |
| Claude → Spotify | Two previews; generated but not saved | Premium requirement encountered; exact duplicates and descriptions |
| Meta Muse → Spotify | Playlist created (listener report) | Exact versions/order; persistent skill loading |
Claude detail: Neither persisted in Spotify; zero saved playlists were confirmed in that test. A later attempt returned a Premium-required error. The listener's actual subscription tier was not independently verified. See Claude guidance.
Gemini detail: A separate twelve-track curation gave an incorrect ChatGPT-style composer instruction. That guidance was corrected but has not been retested. See Gemini guidance.
Muse detail: The listener tested the consumer Meta Muse agent, not Muse Code. See Muse guidance.
Platform notes, not additional field tests: Spotify's Claude announcement describes discovery for Free and Premium listeners but prompt-tailored playlists for Premium; Spotify's Muse announcement documents playlist creation. Google's Spotify media-app guidance covers search/play, not playlist creation, while its YouTube Music guidance supports generating playlists and may require tapping Save to library. These differences explain why Spotify is the default preference, but Gemini users may need setup change YouTube Music to publish.
Evidence rule: An on-screen playlist, a saved provider playlist, and an exact recording-by-recording match are three different outcomes. Don't claim a saved playlist or exact ordering without confirmation.
The personal plugin has also sometimes displayed a generic icon despite packaged branding assets; see issue #2. That is a UI concern, not evidence about playlist publication.
Iterative improvements & release notes
See the full changelog for dates and version-specific detail. The major lines of work are:
- First-run preferences: conversational
setup, revisitable provider choices, and honest session-only versus persistent settings. - Claude and Meta Muse: platform-specific onboarding, native Spotify connector guidance and conservative cross-conversation skill persistence claims.
- Musical discovery: wider scene taxonomy, track-level sonic bridges, authentic recordings and feedback-driven adjustments.
- Publishing handoff: one-command intent, capability preflight and faithful recovery of already-curated lists.
- Flexible prompts: composable
gomood/speed modifiers and explicit track counts. - Quality control: request-versus-result counts, version matching and honest uncertain or missing track reports.
- Identity: the insufferably smug record-shop persona and crimson-star branding.
Implemented instructions aren't the same as demonstrated cross-host publishing or proven musical improvement. Open issues and unresolved experiments remain in GitHub issues.
Repository files, validation & developer setup
| File | Purpose |
|---|---|
SKILL.md | Canonical music-curation skill |
skills/setup/SKILL.md | Service discovery and revisitable listener setup |
references/global-scenes.md | Scene and geography research |
references/sonic-taxonomy.md | Audible production and era map |
references/verification.md | Recording versus streaming versus saved-playlist evidence |
schemas/playlist.schema.json | Portable JSON playlist schema |
scripts/playlist_cli.py | Offline validation, randomness and example generation |
adapters/ | Host and streaming guides |
assets/ | Brand assets and icon guide |
For maintainers with Python 3.10+:
python scripts/build_agent_packages.py --check
python scripts/build_chatgpt_bundle.py --check
python scripts/playlist_cli.py validate examples/example-playlist.json
python -m unittest discover -s tests -v
Use python scripts/build_agent_packages.py --zip to generate upload bundles. Offline tests validate package structure and local contracts, not actual Spotify/YouTube Music writes.
License & contributions
MIT licensed. Contributions are welcome: open an issue with the prompt, exact recording titles, and what succeeded or regressed. Never upload copyrighted recordings or streaming-service credentials. See AGENTS.md and CHANGELOG.md.
You're welcome. We understand it's difficult to express gratitude when you aren't accustomed to hearing good music.