Privacy policy
spotatui has no analytics and no crash reports. Your settings, login and listening history stay on your computer. The app sends data only for the features below, and the settings named there are in the app's Settings page and in config.yml under behavior.
The app
| Feature | What is sent | To | When, and how to turn it off |
|---|---|---|---|
| Global song counter | A request with no body and no identifier, once a song has played for 30 seconds (one per 2.5 minutes of radio). The total is read back at start. The counter keeps only the total and does not log your IP address. | spotatui-counter.spotatui.workers.dev | Off unless you say yes at the first start. Setting: Global Song Counter. |
| Lyrics | The title, artist and length of each track you play. Spotify tracks ask Spotify first. | lrclib.net | At each track change. Setting: Lyrics. |
| Update check (terminal app) | A request for the latest release, then the download of a new version. | github.com | At each start. Setting: Disable Auto-Update, or the SPOTATUI_SKIP_UPDATE environment variable. |
| Update check (desktop app) | A request for latest.json, then the download of a new version. | github.com | At launch and every 6 hours. Setting: Disable Auto-Update. Check for updates on the Settings page still works. |
| Announcements | A request for the announcement list. Which ones you saw stays on your computer. | raw.githubusercontent.com | At each start. Setting: Remote Announcements. |
| Discord Rich Presence | The track title, artist, cover art link and times, to the Discord app on your computer. Discord shows them on your profile. | Discord | On by default when Discord runs. Setting: Discord Rich Presence. |
| Cover art | A request for the image of the current track. | The image server of the source (Spotify, YouTube, Qobuz, your Subsonic server) | Terminal app setting: Draw Cover Art. |
| Music sources | Your login and the requests that browsing and playback need. | Only the sources you set up: Spotify, Qobuz, your Subsonic server, YouTube (through yt-dlp), radio-browser.info and the radio stations you play | Only after you choose the source. |
| History sync and friends | Each finished listen (title, artists, album, times, source) and what plays now, with your sync token. Friend codes and search text on the Friends screen. | spotatui.com | Off until you paste a sync token. Setting: Sync Token. |
| Listening party | The track, position and play state, and the name you join with. | spotatui-party.spotatui.workers.dev | Only when you start or join a party. |
| AI DJ | A summary of your taste (artist and track names), your chat and the tool results. | The model you configure: the claude CLI (the default), the Anthropic API, or a local server | Only when you use the DJ. |
| Plugins | What the plugin sends. | Chosen by the plugin | Only plugins you install. |
| Monthly recap page | Fonts, and the title and artist of each card to find its artwork. | fonts.googleapis.com, itunes.apple.com | Only when you open the recap in a browser. |
Each server also sees your IP address, as with any web request. The Windows desktop installer downloads Microsoft's WebView2 installer when WebView2 is missing.
spotatui.com
You need an account only for the web companion. It stores your name, email address, a hash of your password, your username, friend code and avatar, the people you follow, your sync tokens, your listening history and what plays now. The leaderboard and the GitHub widget show your data only when you turn them on. Login attempts are counted per email address to stop abuse. Email comes from noreply@spotatui.com through Cloudflare.
This data stays until you delete it. In the dashboard you can export it, clear your listening history, or delete your account with everything in it.
The site counts page views with Cloudflare Web Analytics and its own daily totals (page, device type, country, referrer type). Neither stores your IP address or sets a cookie. The only cookies are the login cookies. The home page shows the Discord server widget, the demo player loads YouTube and radio streams, and each page loads the Context7 widget.
The listening party relay keeps your IP address in memory for connection limits and for one hour to limit joins. A party closes after 5 minutes with no one in it.
Other services
The services above have their own policies: Spotify, Discord, GitHub, Cloudflare, LRCLIB, Qobuz, YouTube (Google), Anthropic.
Questions
Open an issue on GitHub. Code signing for the Windows release is described in the code signing policy.