A DJ that actually asks what you want.
Press Ctrl+J and tell it what you are in the mood for. It reads the listening history spotatui already keeps on your machine, searches the catalogue, and queues what it finds. It is a conversation, not a one-shot prompt: it can ask a question before it plays anything, or answer one without queueing at all.
you something like what I have been playing lately, nothing I already own
dj Let me see what you have been on lately.
- get_listening_history 30 days, 1397 plays
- search_tracks Take Me Back / Kygo, Max McNown [owned]
dj Kygo, Avicii and Dean Lewis all month. Six picks around that sound, none already yours.
- queue_tracks queued 6 tracks
you actually more beats, less vocals
dj Closer to Martin Garrix, or Alan Walker?Up to four steps per turn.
Each step the model can search the catalogue, read your queue, queue tracks, or simply reply. Words with no tool calls end the turn, which is what an ordinary answer looks like. Every call shows up in the transcript as it runs.
Suggestions the catalogue cannot confidently match are dropped rather than approximated, so an invented track never lands in your queue as a near miss.
Everything the DJ does has a key
Ctrl+J Open the DJ
A prompt and a transcript, inside spotatui. Type what you want, press Enter.
Ctrl+T Continuous auto-queue
Tops the queue up as tracks finish, keeping about six ahead, so the music never runs out.
Ctrl+Y Vibe shift
Drops the tracks the DJ queued and changes direction, so a change of mind is audible now instead of six tracks from now.
Ctrl+O Only what you don't own
Rejects anything in your Liked Songs or in a playlist you own or collaborate on. Playlists you merely follow do not count.
Every DJ key, and how to rebind them, is in the AI DJ docs.
Bring your own model.
The first time you open the DJ it asks which AI to use and which of that AI's models, because the default backend spends a subscription you already pay for and the heaviest model burns through a plan fast. Ctrl+G reopens that picker at any time. Which AI, which model.
Agent CLI
claude, codex, agy, copilot, opencode, or anything headless. It spends the coding subscription you already pay for, so there is nothing extra to buy.
Anthropic API
The Messages API directly, with a model id priced per token.
OpenAI-compatible
Any endpoint speaking the OpenAI chat format, which includes local models served by Ollama and LM Studio. Nothing leaves the machine.
Setup for each backend, with model lists and prices: backends.
The same tools over MCP, and your Spotify library.
spotatui ships an MCP server, so Claude Code, Codex, Gemini CLI or any MCP client can read what you have been listening to, search, and queue, with the same tools the in-app DJ drives. Over MCP an agent can also manage your playlists, likes and follows, and move playback between your Connect devices. The in-app DJ does not get these. See every tool.
Removing a track asks you first. The socket listens on loopback only, behind a token, and stays off until you turn it on. Full MCP setup.
# in Claude Code, Codex, or any plugin-capable agent
/plugin marketplace add LargeModGames/spotatui
/plugin install spotatui@spotatuiThe DJ sends artist and track names summarised from the history already stored on your machine. No identifiers, no timestamps, no account details. Point it at a local model through Ollama or LM Studio and nothing leaves the machine at all.
Ships in the prebuilt terminal binaries: set a backend and press Ctrl+J. Building from source? See the AI DJ quick start and MCP setup.