Charts and stats

Render a cover collage, read your top artists and albums, and break your library down by genre, country and hour of the day.

Everything on this page describes one library — usually yours, optionally somebody else's. The collage and the top lists are free. The breakdowns that answer why your library looks the way it does are Boosting Premium, which costs nothing if you boost the support server.

Add a mention to almost any command here and you get that person's answer instead of your own.

Build a cover collage

,lastfm chart, aliased ,collage, renders a grid of album art. It's free, and /lastfm chart is the slash form.

Arguments are order-independent and anything Righteous doesn't recognise is ignored, so ,lastfm chart 5x5 albums 1m and ,lastfm chart 1m 5x5 are the same command.

OptionWriteNotes
Typealbums, artists, tracksalbums is the default. Short forms like ab, ar, tr work
Size5x5, or a bare 5Up to 10x10. Bigger than that is refused rather than trimmed
Period7d, 1m, 3m, 6m, 12m, overallAlso a bare year or month name
CaptionsnocaptionsHides the titles. noplays hides the play counts
RainbowrainbowSorts the tiles into a hue sweep. Turns captions and play counts off, since labels on hue-sorted art are noise
Colourcolor:<hex or name>Keeps only the covers closest to that colour
Genregenre:<tag>Keeps only tiles whose artist carries that tag

Colour and genre filtering are free, exactly like the rest of the command.

Covers Last.fm has no art for are dropped and the grid is resized to what's left, so a small library asking for 8x8 gets a full smaller square instead of a grid with holes in it. Add keepempty if you'd rather have the literal top-N, blanks included.

The Customize button under the chart is a premium perk

The command is free for everyone. The Customize button on the reply reopens the chart with a form for size, period, the toggles, genre and colour, and that needs Boosting Premium or Server Premium in this server. The button keeps working on an old message, so a chart from last week still opens.

Read your top artists, albums and tracks

CommandShows
,lastfm tar [person]Top artists
,lastfm tab [person]Top albums
,lastfm tt [person]Top tracks
,lastfm tta [artist] [person] [range]Top ten albums by one artist
,lastfm ttt [artist] [person] [range]Top ten tracks by one artist
,lastfm topalbumsongs [album - artist] [person]Your most-played songs from one album — Boosting Premium
,lastfm overview [person] [artist]One artist's top track and top album for you

On slash these live under /lastfm top.

Artist names that look like dates

,lastfm ttt The 1975 and ,lastfm tta 2001 are genuinely ambiguous — the trailing number could be an artist or a year. Righteous resolves it by checking whether the whole string is a real artist. If you want to be certain, put the window in an explicit range: at the end: ,lastfm ttt The 1975 range:2024.

Play counts for one specific thing:

CommandAnswers
,lastfm ap [artist]How many times you've played an artist
,lastfm alp [album - artist]An album
,lastfm sp [track - artist]A track

Leave the target off and Righteous uses what you're playing right now. Mention somebody and you're asking how many times they have played it.

See your profile and your recent plays

,lastfm profile [person] gives the summary card: scrobble totals, top artist, album and track, and how long the account has been running.

,lastfm recent [person] lists the last tracks scrobbled. Free callers get a shorter list. Boosting Premium or Server Premium here makes it longer.

,lastfm streaks [person] finds the artist you're currently on a run with. Add the word history to either of these and, if you've synced your scrobbles, they read your local copy instead — a much longer recent list, and your longest artist runs ever rather than only what fits in one request. That's opt-in on purpose, covered in History, sync and export.

Show when each track was scrobbled

,lastfm timestamps <on|off> [style] adds the scrobble time to every row of ,lastfm recent, rendered in each reader's own timezone.

This one needs Self Premium or Server Premium in the server you run it in. Boosting Premium is not enough, because this one is a purchase-only perk. The command is prefix-only. On slash the same two controls are on the Recent page of /lastfm settings panel, which shows each style with a worked example rather than asking you to recognise a one-letter code.

Break your library down

Six commands answer a different question about the same library. All six are Boosting Premium.

CommandAnswers
,lastfm genres [artist] [range]Your top genres, from your artists' Last.fm tags
,lastfm country [artist] [range]Where your artists are from
,lastfm obscurity [artist] [range]How underground your taste is, from global listener counts
,lastfm decades [artist] [range]When your artists formed
,lastfm artisttype [artist] [range]Solo artists against bands
,lastfm clock [person]When you listen, by hour and weekday

Each of the first five has two modes. With no argument you get your whole library ranked. Name one artist and you get that artist's answer plus your play count for them.

Every one of them comes back with a dropdown. The default is a leaderboard, and the other entries switch to a bar chart, a pie chart, or a shape specific to that command — a world map for country, a deep-cuts list for obscurity, a radar for the ones with few enough buckets to draw one. Switching views costs nothing, because the numbers are computed once.

A second dropdown opens any row as the list of artists inside it, so "Hip-Hop, 41 artists" becomes the 41 artists.

The first run on a big library is incomplete on purpose

Facts like an artist's country and formation date are looked up from outside Last.fm and rate limited hard. The first run resolves what it can immediately, hands the rest to a background queue, and the footer tells you how many artists are still resolving. Run it again in a minute and the numbers fill in. Artists that haven't resolved yet are counted nowhere, rather than being lumped into Unknown.

Unknown is a real row where it appears. Some artists genuinely have no country or formation date on record, and hiding them would make every percentage above them wrong.

Set your timezone before reading the clock

,lastfm clock renders in a timezone, and the default is US Central rather than UTC. Set your own with ,lastfm timezone <IANA name> — for example ,lastfm timezone Europe/London. ,lastfm timezone off clears it. It's Boosting Premium, and it's also on the settings panel.

The clock's footer always names the zone it used, so a wrong setting is visible rather than silent. ,lastfm clock @someone reads their timezone setting, not yours.

Five views sit behind the clock's dropdown: a clock face with your peak and quietest hours, an hourly bar, a weekday bar, a radar, and a heatmap of the whole week.

Two smaller things on the same data

,lastfm recommendations suggests music from what you already play. Free.

,lastfm lyrics [track] finds lyrics for the track you're playing, or a named one. Boosting Premium. A mention gives you the lyrics for what they're playing.

Common issues

Your chart is smaller than you asked for. Covers with no artwork are dropped before the grid is sized, so the square shrinks to what's actually renderable. Add keepempty for the literal top-N.

Your chart was refused for its size. Anything past 10x10 is rejected rather than quietly clamped, because a request for thousands of covers shouldn't silently turn into a hundred.

A colour or genre chart came back with fewer tiles. Both filter your library rather than searching it. A narrow tag or an unusual colour has fewer matches to draw from, and the footer says how many candidates were considered.

A stats command says artists are still resolving. That's the background queue. Run it again in a minute.

,lastfm clock or ,lastfm streaks takes several seconds. On a large synced history those two are the heaviest queries here. They post a placeholder while they work, and a repeat run is instant.

A dropdown says the interaction failed. The menu stopped listening. Run the command again.