Every commit carries the Spotify track that was playing when the code was written. A git hook injects it. CI enforces it. No music, no merge.
$ git log -1 feat: polish player UI and fix now-playing box alignment 🎵 https://open.spotify.com/track/1MQTmpYOZ6fcMQc56Hdo7T ✓ vibe-check — track found, commit accepted
A pre-commit hook asks Spotify what you're listening to and appends it to your commit message. CI runs a vibe check on every push — no track URL means a red build. Merge commits get a pass because even we aren't that unhinged.
The byproduct is the vibes page: an auto-generated, living soundtrack of the entire codebase. Every song that was playing when every line was written, regenerated on every push to master.
Underneath the gimmick is a genuinely premium terminal player built on php-tui — live progress track, album art, queue peek, fuzzy search palette, and keyboard-driven everything. Spotify, but it never leaves your prompt.
30+ commands built on Laravel Zero — the soundtrack is enforced, but the day-to-day tooling carries its weight too.
Play, pause, skip, volume, shuffle, repeat. Full control over Spotify without leaving the terminal.
AI-friendly search, mood queues, and autopilot presets (chill, flow, hype, focus, party, upbeat, melancholy, ambient, workout, sleep) powered by your listening history.
Add tracks, view upcoming songs, and auto-fill your queue using Spotify's recommendation engine.
The php-tui player above — progress bar, album art, search palette, and keyboard controls.
Background playback with spotifyd, macOS media key integration, and Control Center sync via nowplaying.
Expose playback and discovery as MCP tools so your AI assistant can DJ while you code.
# Install globally composer global require the-shit/music # Set up Spotify credentials spotify setup # Authenticate spotify login # Play something spotify play "Killing In the Name" # See what's playing spotify current # Launch interactive player spotify player