Mutuals — people you follow who follow you back — you never hear from. Paste a Bluesky handle and purge reads their follow graph to find mutuals, then checks whether each one has liked or replied to any of that account's posts recently. Anyone who hasn't gets listed, so you know who to consider unfollowing.
reads Bluesky's public AppView, all in your browser — no login, nothing written anywhere.
| # | who |
|---|
getFollows and
getFollowers in full and intersects them —
that's the mutuals set. Then it pages the target's own
recent posts via getAuthorFeed, stopping once a post
falls outside the chosen window (up to 60 posts sampled), and for
each one reads its public getLikes and direct
getPostThread replies. Any mutual who shows up as a
liker or direct replier on at least one sampled post counts
as engaged; everyone else in the mutual set is "quiet" and lands on
the purge list. Reposts don't count — the ask is specifically about
liking or replying. Because this only samples the target's own
posts (not every place the two accounts might interact — quote
posts, other threads, DMs), a real friend who mostly engages
elsewhere can still show up here; treat the list as a starting
point for a look, not a verdict. If the account being checked
hasn't posted at all in the chosen window, every mutual will look
"quiet" for the trivial reason that there was nothing to engage
with — purge flags that case instead of reporting it straight.