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. It refills at two, roughly 6 to 8 minutes of runway.
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. Playlists you merely follow do not count.
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.
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. Set the key in the environment rather than in plaintext YAML.
OpenAI-compatible
Any endpoint speaking the OpenAI chat format, which includes local models served by Ollama and LM Studio. Nothing leaves the machine.
The same tools, over MCP.
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. It publishes the same tool table the in-app DJ drives, so the two can never drift apart.
The socket binds loopback only, behind a token, and stays off until you set behavior.mcp_enabled: true.
# 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 release binaries: set a backend and press Ctrl+J. Building from source: --features ai-dj,mcp-server