···11+# follow-cleaner
22+33+A CLI tool that analyzes your Bluesky follow list and scores accounts based on how much you interact with them. Useful for identifying accounts you might want to unfollow.
44+55+## How it works
66+77+The tool fetches your follows and posts, then calculates an engagement score for each account you follow based on:
88+99+- **Direct replies** (+10 points): When you reply directly to someone's post
1010+- **Thread replies** (+3 points): When you reply in a thread started by someone you follow
1111+- **Freshness bonus** (up to +50 points): Recent follows get bonus points that decay over 25 days
1212+1313+Accounts with a score of 0 are ones you follow but haven't interacted with recently.
1414+1515+### Note
1616+1717+It does **NOT** weigh likes. If you only like posts, you might see a zero.
1818+1919+## Installation
2020+2121+```sh
2222+bun install
2323+```
2424+2525+## Usage
2626+2727+```sh
2828+bun index.ts <handle>
2929+```
3030+3131+For example:
3232+3333+```sh
3434+bun index.ts user.bsky.social
3535+```
3636+3737+The tool will output:
3838+3939+- Progress logs as it fetches data from the Bluesky API
4040+- A summary of your top 5 highest-scored follows
4141+- A count of accounts with zero engagement
4242+- A file named `<handle>_engagement.txt` with all scores sorted from highest to lowest
4343+4444+## Output format
4545+4646+The output file contains one line per followed account:
4747+4848+```
4949+handle.bsky.social 63 (engagement: 30, freshness: 33)
5050+another.user 10 (engagement: 10, freshness: 0)
5151+old.follow 0 (engagement: 0, freshness: 0)
5252+```
5353+5454+## Requirements
5555+5656+- [Bun](https://bun.sh) runtime
5757+- No authentication required (uses public Bluesky API)
5858+5959+Code and most of README slopped out, sorry if that hurts your feelings. Not burning energy on tiny little tools like this that are not logically complex but are a time sink.