Skip to content

Architecture

spotuify is moving from a single binary shape to a daemon-backed runtime. The daemon is the system. The CLI, TUI, scripts, and agents are clients.

TUI / CLI / Scripts / Agents
|
| length-delimited JSON
v
Daemon
|
+-- SQLite cache
+-- Tantivy search index
+-- Spotify Web API
+-- Spotify Connect player

Run the surfaces:

Terminal window
spotuify
spotuify status --format json
spotuify daemon status
BucketExamples
core-musicplayback, devices, queue, playlists, library, search
spotuify-platformcache/index state, playlist plans, saved recipes
admin-maintenancestatus, events, logs, doctor, reset, repair, reindex
client-specificpane state, selected row, modal state

Client-specific state stays out of daemon IPC.

SQLite is the cache. Tantivy is derived and rebuildable.

Terminal window
spotuify cache status --format json
spotuify reindex --format json

The docs and architecture deliberately copy mxr patterns before inventing new ones: Starlight docs, generated CLI reference, length-delimited JSON IPC, local store/search, output formats, and daemon/client separation.

Terminal window
spotuify search "quiet storm" --format jsonl
spotuify playlist add "Coding" spotify:track:... --dry-run
CrateJob
spotuify-coredomain types
spotuify-protocolRequest, Response, Event, IPC client
spotuify-storeSQLite tables and queries
spotuify-searchTantivy indexing and local search
spotuify-spotifySpotify Web API mapping
spotuify-playerplayback backend orchestration
spotuify-daemonserver, state, sync, handlers
spotuify-cliclap commands and output
spotuify-tuiratatui client
spotuify-mcpMCP tools and resources