Choral

Legal

Privacy Policy

Last updated: July 11, 2026

At a glance

  • Choral has no servers and no accounts of its own. We never receive, store, or sell your data.
  • Your listening activity is processed on your Mac. The browser extension talks only to the Choral app on the same computer.
  • Choral contacts the internet only to fetch album artwork and lyrics, and to talk to accounts you choose to connect (Last.fm, Spotify).
  • No analytics, no tracking, no ads — in the app, the extension, and this website.

1. Overview

Choral is a floating music control for macOS, made by FANG.works. This policy explains what information the Choral app, the Choral Connector browser extension, and this website handle, and where that information goes. The short version: almost everything stays on your Mac.

2. What Choral reads on your Mac

To show and control what's playing, Choral reads now-playing information — track title, artist, album, artwork, playback position, and playback state — from the music sources you use:

  • Apple Music and Spotify (desktop apps): read locally through macOS automation (Apple Events). macOS will ask for your permission the first time.
  • Online music services (YouTube Music, SoundCloud, TIDAL, Deezer, Bandcamp): read by the Choral Connector browser extension from the corresponding player tab, and relayed to the Choral app over a local connection (127.0.0.1) that never leaves your computer.

This information is used solely to render the player, drive your playback controls, and power the optional features described below. It is not transmitted to us — we have no servers to send it to.

3. Network requests the app makes

Choral makes a small number of outbound requests, each for a specific feature:

  • Album artwork — when a music source doesn't provide artwork, Choral queries Apple's public iTunes Search API (itunes.apple.com) with the track, artist, and album name to find a cover image. This request is subject to Apple's privacy policy.
  • Lyrics — Choral fetches lyrics from LRCLIB (lrclib.net), an open lyrics database, by sending the track title, artist, album, and duration. No account or identifier is included.

These requests contain track metadata only — never your name, account details, or any device identifier beyond what any internet request technically includes (such as your IP address, visible to the operator of each service).

4. Optional account connections

Choral works fully without any account. Two integrations are opt-in:

  • Last.fm — if you connect Last.fm, Choral sends now-playing updates and scrobbles (track title, artist, album, and a timestamp) to Last.fm on your behalf. You choose which music sources scrobble in Settings, advertisements are never scrobbled, and you can disconnect at any time. Data submitted to your Last.fm account is governed by Last.fm's privacy policy.
  • Spotify liking (advanced) — the like button for Spotify requires you to supply the Client ID of your own Spotify developer app. Authorization uses Spotify's standard OAuth flow in your browser; Choral requests only library read/write scopes, and your tokens are stored on your Mac. Choral never sees your Spotify password. You can remove the connection in Settings and revoke access from your Spotify account page at any time.

5. The browser extension

The Choral Connector extension runs only on the supported music sites listed above. It reads the current track and playback state from those pages and relays your control actions (play, pause, skip, seek, like) back to them. It communicates exclusively with the Choral app on the same computer via 127.0.0.1 — it has no remote server, does not read your browsing history, does not access any other websites, and contains no analytics. Uninstalling the extension stops all of this immediately.

6. Where your data is stored

Your preferences, connected-account tokens, and offline scrobble queue are stored locally on your Mac, inside the app's sandboxed container. Deleting Choral removes them. If you stop using a connected account permanently, we also recommend revoking Choral's access from that service's own settings page.

7. What we never do

  • No analytics, telemetry, or crash reporting.
  • No advertising and no ad identifiers.
  • No selling, renting, or sharing of any data — we never possess it in the first place.
  • No Choral account: there is nothing to sign up for and nothing for us to store.

8. This website

choralapp.com is a static website. It sets no cookies and runs no analytics. It loads the Outfit typeface from Google Fonts, which means your browser makes a request to Google's servers subject to Google's privacy policy.

9. Children

Choral is not directed at children under 13, and we do not knowingly collect information from anyone — children included, by design.

10. Changes to this policy

If Choral's data practices change — for example, if a future feature requires a new kind of network request — we will update this page and its "Last updated" date. Material changes will be called out in the release notes of the version that introduces them.

11. Contact

Questions about privacy? Reach us on X at @choral_app.