tourmaline
Open source | No sign-in needed
Discover what kind of
listener you are.
Tourmaline analyses your Teal scrobbles -- genres, moods, eras, obscurity, and a personality archetype.
Reads fm.teal.feed.play and legacy fm.teal.alpha.feed.play records from the user's PDS. Enriches
with MusicBrainz, Last.fm, and Deezer.
What it does
Top artists & tracks
Ranked lists of your most-played artists, tracks, and albums with play counts.
Genre profile
MusicBrainz tags and Last.fm genres mapped to a weighted genre chart.
Mood mapping
Energy, melancholy, tension, brightness -- derived from genre weights.
365-day heatmap
A full year of listening at a glance. Spot patterns, gaps, and spikes.
Personality archetype
The Curator, The Explorer, The Loyalist -- your listener profile in a few words.
Obscurity index
How deep into the catalog do you go? Scored from mainstream to obscure.
Diversity score
Measures breadth across artists and genres. Are you a generalist or a specialist?
Privacy-first
No sign-in needed to browse. Reads public scrobbles from any PDS. Sign-in only required to share.
How it works
- 1 Enter a handle
Any AT Protocol handle or DID. No sign-in, no app password.
- 2 Fetch scrobbles
fm.teal.feed.play and legacy fm.teal.alpha.feed.play records are read from the user's PDS. All processing runs server-side.
- 3 Analyse
Scrobbles are aggregated into top artists, genres, moods, era preference, diversity, obscurity, and a personality archetype.
- 4 Enrich
Top artists are enriched with genre data from MusicBrainz, listener counts from Last.fm, and images from Deezer -- after the profile is already visible.
Ready to decode your soundscape?
No logins, no tracking, and absolutely no app passwords required. Just drop your AT Protocol handle or DID below and reveal your profile instantly.
More tools like this one
Same idea, different platform — all free and open source.
Import your music listening history into Teal.
OpalConvert Twitter, Mastodon, Threads, and Nostr posts to Bluesky.
JasperImport Instagram photos and videos to Grain or Spark.
BismuthConvert ATProto richtext-block documents to Markdown.
tourmaline is free, and staying that way
No ads, no accounts, no tracking — just a tool that does the job and gets out of the way. If it saved you an afternoon, chipping in helps keep it maintained.
Rather not? Star the repo or a word to someone who'd use it helps just as much.