Letterboxd
Link your Letterboxd account, sync your library, look up films by title, plan a watchparty, and mirror a member's new logs into a channel.
Righteous reads public Letterboxd data: a film's own page, a member's diary, their watchlist, and
who else in this server has logged the same thing. Once a member syncs their whole library, the
family goes further: full-history lookups, group watchparty planning, and taste-based
recommendations. Everything under ,letterboxd and /letterboxd is free. The only paid part is
mirroring a member's new logs into a channel automatically, which is its own section below.
Righteous never posts to Letterboxd or changes anything there. It only reads public pages.
Link your account
Run the login command
Syntax
,letterboxd login <username|profile URL>
Example
,letterboxd login moiiisty
Also /letterboxd login. Give it your username, your full profile URL, an @handle, or a URL
with no https:// in front: all of those work. Righteous checks the name against Letterboxd
before storing it, so a name that doesn't exist is refused rather than saved.
Or set it from your profile instead
Syntax
,profile letterboxd set <username>
Example
,profile letterboxd set moiiisty
This writes the exact same setting ,letterboxd login does, not a second one. Use whichever
command you happen to be in.
Check it worked
Run ,letterboxd profile with no
argument. If your own stats come back, you're linked.
A private Letterboxd profile can't be read
Linking checks that a public member by that name exists, but it can't tell in advance whether their diary itself is private. If every lookup for a linked account comes back empty, that's almost always why.
To unlink, ,letterboxd reset (aliases
unlink, logout) or ,profile letterboxd reset. Neither asks for confirmation, so a re-link is
just running login again.
Sync your library
Syntax
,letterboxd update
This is the one thing worth understanding before the rest of this family makes sense. Once you're
linked, running ,letterboxd update (alias
resync) reads your whole Letterboxd library and watchlist and stores it, so the commands further
down (watchparty, who-knows, recommendations, the leaderboards, and the deep version of taste
comparisons) can answer instantly instead of only seeing your last few diary entries. It's free,
also available as /letterboxd update.
You don't need to run it after every film. It only needs re-running occasionally: recently logged
films are usually picked up on their own. If a group command or a taste comparison says you or
someone else hasn't synced, running update again is the fix.
It's not instant for a large library, so the reply is a progress message that updates itself in place while it works, followed by the final totals. This isn't a screenshot, it's a text illustration of what the two stages actually contain:
Syncing your Letterboxd library
→ Syncing your library — page 5/18, 500 films so far
→ Syncing your library — page 18/18, 1,204 films so far
→ Syncing your watchlist
Library synced
1,204 films read (890 rated) across 18 pages.
96 watchlist entries stored.
Your whole library is now stored — `whoknows` and friends can answer from it instantly.
If Letterboxd stops responding partway through, the reply says exactly how far it got instead of
reading as a clean finish, and nothing already stored is removed: running update again picks up
where it left off.
Plan a watchparty
Syntax
,letterboxd watchparty <@member> [@member...]
Example
,letterboxd watchparty @friend1 @friend2
The most useful thing in this whole family: mention between one and four other members, and
,letterboxd watchparty finds films
sitting on everyone's watchlist that nobody in the group has logged yet, ranked by Letterboxd's own
rating. Also /letterboxd watchparty, which takes up to four members as its own options instead of
mentions.
Everyone counted needs a linked Letterboxd account and a synced watchlist (see Sync your library above). At least two people in the group need both for a result; anyone missing either is named in the reply rather than silently dropped from the count.
Here's what that looks like in practice, illustrated as text rather than a screenshot, for a three-person group where one friend hasn't linked a Letterboxd account yet:
Watchparty picks
**1.** Perfect Days (2023) — 4.21/5 · listed by 2/2
**2.** The Worst Person in the World (2021) — 4.02/5 · listed by 1/2
**3.** Aftersun (2022) — 3.98/5 · listed by 2/2
2 of 3 named members contributed a synced watchlist • skipped: friend2 (no linked Letterboxd account)
The footer always names who was skipped and why, rather than just quietly planning around them: "no linked Letterboxd account" and "watchlist not synced" are the two possible reasons.
Look someone up
Every command below takes an optional target. Leave it off and Righteous answers for you. Name a
member and it answers for them if they've linked their account, and now you can also give a bare
Letterboxd username or a profile link directly, for an account nobody in the server has linked, or
someone who isn't in the server at all: ,letterboxd following moiiisty and
,letterboxd following https://letterboxd.com/moiiisty/ both work the same way.
| Command | Shows |
|---|---|
,letterboxd film <title> | A film's details and its Letterboxd rating |
,letterboxd recent [user] | Recently logged films, with star ratings, ♥ likes and rewatch markers |
,letterboxd following [user] | Who they follow on Letterboxd |
,letterboxd profile [user] | Films watched, films this year, lists and followers |
,letterboxd watchlist [user] | Their watchlist |
,letterboxd lists [user] | Their published lists |
,letterboxd favorites [user] | Their four favorite films (alias favourites) |
,letterboxd random [user] | A random pick off their watchlist |
Each has a matching leaf under /letterboxd with the same name.
Search for a film
Syntax
,letterboxd film <title|letterboxd link|tmdb link>
Example
,letterboxd film dune part two
Give ,letterboxd film a title and it looks
the film up directly, the same way you'd search on Letterboxd itself.
A Letterboxd film link (https://letterboxd.com/film/dune-part-two/) or a TMDB link works too, and
is worth reaching for if a title search finds the wrong film first. On slash, /letterboxd film's
title box suggests matches as you type.
Get recommendations from your taste neighbours
Syntax
,letterboxd rec [user|username|link]
Example
,letterboxd rec @friend
,letterboxd rec looks at everyone else in this
server who's synced a library, ranks them by how much their library overlaps with the target's, and
pulls highly-rated films from those "taste neighbours" that the target hasn't logged yet. Only
works in a server, and both the target and at least one other member need a synced library (see
Sync your library) for it to find anything.
Compare taste with someone
Syntax
,letterboxd taste <user|username|link>
Example
,letterboxd taste @friend
If you and the other person have both synced your libraries,
,letterboxd taste compares your whole logged
histories: how much overlaps, an agreement score, and a short list of films you both loved. If
either side hasn't synced, it falls back to comparing your last 50 or so logged films instead.
Either way, the reply itself names which comparison it used, right in its title, so you always know
whether you're looking at a full picture or a recent snapshot.
With both libraries synced, a reply reads like this (text, not a screenshot):
moiiisty vs davidehrlich — shared taste (full library)
**Overlap:** 214 films logged by both (out of 1,842 / 967 total).
**Agreement:** 78% (from 190 films rated by both).
**Both loved:**
Perfect Days (2023) — ★★★★½ vs ★★★★★
Aftersun (2022) — ★★★★ vs ★★★★½
Comparing synced libraries, not recent diary activity
If either of you hasn't synced, the title, the body and the footer all say so instead:
moiiisty vs davidehrlich — shared taste (recent activity)
Perfect Days (2023) — ★★★★½ vs ★★★★★
Dune: Part Two (2024) — ★★★★ vs ★★★★
From each member's last 50 logged films, not their whole library — sync both sides (letterboxd update) for a full-library comparison
See who in this server has logged something
Syntax
,letterboxd whoknows <film>
Example
,letterboxd whoknows dune part two
,letterboxd whoknows ranks the members of
this server who've logged that film. Only works inside a server, and only counts members who've
linked their own account. Anyone who's synced their library (see
Sync your library) is checked against their whole history, so this finds a
film someone watched years ago, not just recently; anyone who hasn't synced yet is still checked
against their recent diary activity, so they can still show up if they logged it lately. The reply
says which of the two produced each name, and how many linked members have never synced at all.
On a very large server, checking the not-yet-synced members against Letterboxd itself (rather than the stored library) can leave a few of them unchecked in one run; the reply says so when it happens, and running it again shortly after picks them up.
For a server where three linked members already have the film in a synced library, one more only has it in a recent diary, and two linked members have never synced at all, the reply looks like this (illustrated as text, since nobody has captured a real one of these yet):
Who knows Dune: Part Two (2024)
**1.** @distant_moon — ★★★★½
**2.** @filmfan22 — ★★★★
**3.** @reelwatcher — ★★★½
**4.** @newmember — ♥
3 from synced libraries • 1 from recent diary only • 2 linked members never synced
That footer is the feature: it says plainly which of the ranked names came from a full synced library versus a recent-diary guess, and it counts the linked members it couldn't check against a library at all, so a short list never quietly passes itself off as a complete one.
See the server's leaderboards
Syntax
,letterboxd top
Syntax
,letterboxd obscurity
Both are read straight from synced libraries, so nobody needs to be pinged and nothing is fetched
live. ,letterboxd top ranks members by how many
films they've logged; ,letterboxd obscurity
ranks them by how little their logged films overlap with everyone else's here, for whoever's taste
is furthest off the beaten path. obscurity needs at least two members with a synced library to
compare against each other; top works with just one, though it's more interesting with more.
Force a re-read
Syntax
,letterboxd refresh
If you just logged something on Letterboxd and it hasn't shown up in recent or whoknows yet, run
,letterboxd refresh to make Righteous
re-read your diary right away instead of waiting.
Recent still reads only the last diary window
recent shows roughly the last 50 entries on a member's diary, which is also all Letterboxd's own
feed for a profile ever hands back. taste and whoknows read a member's whole synced library
once they've run ,letterboxd update; until then, they fall back to that
same recent window too.
Share a link and get a card
Mention the bot in a message that includes a Letterboxd link and Righteous replies with a styled card, then removes your original message.
Syntax
@Righteous <letterboxd link>
Example
@Righteous https://letterboxd.com/film/dune-part-two/
Pasting the link on its own does nothing
The bot only responds when it's mentioned. A bare Letterboxd link dropped in chat with no mention gets no reaction from Righteous at all, on purpose. That's the single most common reason this looks broken when it isn't.
A link to a film's own page (letterboxd.com/film/<slug>/) gets that film's card: rating, cast,
genres, runtime. A link to a member's diary entry for that film
(letterboxd.com/<user>/film/<slug>/) gets the same film card plus that member's own rating,
whether they liked it, and their review if they wrote one.
You don't have to mention the bot if you'd rather type a command directly:
Syntax
,letterboxd <letterboxd link>
Example
,letterboxd https://letterboxd.com/film/dune-part-two/
The slash equivalent is /links letterboxd. Both do the same thing the mention path does, on
request instead of automatically.
Premium members can skip the mention too
With any premium (boosting counts, and so does being in a Server Premium server), typing
righteous <link> on its own, no prefix and no mention, does the same thing.
Server admins can turn the whole thing off:
Syntax
,config social letterboxd [on|off]
Example
,config social letterboxd off
Needs Administrator. Like every other platform this toggle covers, a server that's never touched the setting has it switched on by default.
Not part of /fyp
Reposted films and TikTok/Twitter/Instagram reposts aren't the same feature under the hood, and it
shows here: a Letterboxd card never gets added to /fyp's
shuffle. There's no video or audio on a film card for it to replay.
Mirror new logs into a channel
Server Premium. Point a channel at a Letterboxd member and Righteous posts their newly logged films and reviews there as they happen.
Syntax
,letterboxdfeed add <#channel> <username> [message]
Example
,letterboxdfeed add #movies davidehrlich
Also /feeds letterboxd add. A server can hold up to 3 Letterboxd feeds, checked roughly every
15 minutes.
A new feed doesn't backfill
Adding a feed starts it from the moment you add it. It doesn't dump that member's existing diary into the channel, so the first thing you'll see is whatever they log after you set it up, not anything older. If nothing has posted yet, that almost always means they simply haven't logged anything new since.
A posted entry is its own card: the member's name and picture at the top, what they did, and their rating, like and review if they left one. As text rather than a screenshot, a reviewed and liked film looks like this:
davidehrlich (@davidehrlich)
Reviewed Perfect Days (2023)
★★★★½ ❤️
A quiet, patient film that trusts you to sit still with it. One of the best of the year.
@davidehrlich · feed
A plain watch with no rating or review posts as just the title, "Watched Perfect Days (2023)", with nothing else in the card. A rewatch adds "🔁 Rewatch" the same way a rating adds stars.
Syntax
,letterboxdfeed list
Syntax
,letterboxdfeed info <#channel> <username>
Example
,letterboxdfeed info #movies davidehrlich
Checking what's configured only needs Manage Server, no Server Premium: list and info stay
free to run even if the server's subscription has lapsed, so whoever's asking why a feed went quiet
can always see the answer.
Syntax
/feeds panel
Opens a management panel for GitHub, Twitter and Letterboxd feeds together, with a tab for each.
It only opens over slash; running ,letterboxdfeed panel on prefix points you at /feeds panel
instead of posting anything.
Pausing, resuming or retrying a feed, choosing who its posts appear as, and the reasons a feed can go quiet are the same across all three feed platforms. See Feeds for that shared ground rather than repeating it here.
Honest limits
- Private Letterboxd accounts can't be read, by any command here, including feeds.
- The library and social commands need a synced library first. Watchparty, whoknows' whole-
history answers, recommendations, both leaderboards, and taste's full-library comparison all need
,letterboxd updaterun at least once. Anyone who hasn't is named as such in the reply rather than silently left out or counted as a "no." ,letterboxd recentalways reads only the last 50 or so diary entries, synced library or not. It's the one lookup here with no whole-history mode.- Righteous never writes to Letterboxd. No follows, no likes, no logs on your behalf. Every command here only reads public pages.
Common issues
"No Letterboxd member by that name or link." Either the username is misspelled, or you pasted a
link to something other than a profile (a film, a list, a search page). ,letterboxd login says
which when it can tell.
A lookup comes back empty for someone who's clearly active on Letterboxd. Their account is almost certainly private. Nothing here can read a private profile.
Mentioning the bot with a link does nothing. Check that the message actually mentions the bot,
not just contains the link: pasting a Letterboxd link with no mention is silent by design. Also
check ,config social letterboxd hasn't been turned off.
,letterboxd taste says there's no overlap. If either of you hasn't run
,letterboxd update, it's comparing your last 50 or so logged films instead
of your whole library, and two real Letterboxd users can still show nothing in common there if
neither has rated much recently. If you've both synced and it still says no overlap, you genuinely
haven't logged any of the same films yet.
,letterboxd whoknows says nobody has logged a film you know someone here watched. Either they
haven't linked their Letterboxd account, or they haven't synced their library and the watch fell
outside their recent diary window. Ask them to run ,letterboxd update, or
,letterboxd refresh if they just logged it, and try again.
,letterboxd watchparty says nobody qualifies, or leaves someone out. Everyone counted needs a
linked Letterboxd account and a synced watchlist. The reply names whoever's missing one or the
other; have them run ,letterboxd update and try again.
,letterboxd rec, top or obscurity come back empty. All three only look at members who've
run ,letterboxd update; rec also needs the target specifically to have
synced, and obscurity needs at least two synced members to compare against each other. If nobody
here has synced yet, that's why.
A feed I just added hasn't posted anything. New feeds don't backfill; see A new feed doesn't backfill above. It'll post the next time that member logs something.
,letterboxdfeed add refuses. A server can hold up to 3 Letterboxd feeds at once. Run
,letterboxdfeed list and remove one before adding another.
Nothing here fixed it. The shared common issues page works the same ground from the symptom end.