Bluesky users sometimes face harassment or spam from followers who subscribe to their account. Manually blocking each account is time-consuming and impractical when the list is large. Bluesky does not offer a built-in mass-block tool, but you can use third-party automation to block all your subscribers at once. This article explains how to set up a mass-block workflow using a subscriber list export and a community-maintained script.
Key Takeaways: Automating Subscriber Blocks on Bluesky
- Settings > Moderation > Moderation Lists: Create a new list to store accounts you want to block in bulk.
- Third-party script (bluesky-blocker): A Python tool that reads a CSV of DIDs and adds them to your moderation list.
- Export subscriber DIDs: Use the Bluesky API or a browser extension to get a CSV file containing the DIDs of your subscribers.
How Mass-Block Works on Bluesky
Bluesky moderation lists allow you to group accounts and apply a block action to all members of that list at once. When you add an account to a moderation list set to Block, Bluesky blocks that account for you. The platform does not provide a one-click block-all-subscribers feature. Instead, you must gather the DIDs of your subscribers and feed them into a moderation list using an external script. The script uses the Bluesky API to add each DID to the list. After the list is populated, you apply the block action from the Bluesky interface.
What You Need Before Starting
You need a Bluesky account with an app password. You also need Python 3.8 or later installed on your computer. Familiarity with the command line is helpful but not required. The entire process takes about 10 minutes.
Steps to Set Up Mass-Block via Subscriber List
Follow these steps exactly. Do not skip any step.
- Create a Bluesky App Password
Go to Bluesky Settings > Privacy & Security > App Passwords. Click Add App Password, name it something like “mass-block-script”, and copy the generated password. Store it safely. You will not be able to see it again. - Install Python and Required Libraries
Open a terminal or command prompt. Runpip install requests pandasto install the libraries the script needs. If pip is not recognized, install Python from python.org first. - Download the bluesky-blocker Script
Go to the official GitHub repository mattdavis90/bluesky-blocker. Click the green Code button and select Download ZIP. Extract the ZIP file to a folder on your computer. - Export Your Subscriber List as CSV
Use a browser extension like “Bluesky Data Exporter” for Chrome or Firefox. After installing, log in to Bluesky in your browser. Click the extension icon and select Export Subscribers. Save the resulting CSV file to the same folder as the script. The CSV must contain a column nameddidwith each subscriber’s decentralized identifier. - Create a Moderation List on Bluesky
In Bluesky, go to Settings > Moderation > Moderation Lists. Click New List, give it a name like “Bulk Block List”, and set the purpose to Block. Do not add any accounts manually. Note the list URL — it will look likehttps://bsky.app/profile/{your-handle}/lists/{list-id}. Copy the list ID from the URL. - Run the Script to Add Subscribers to the List
Open a terminal in the folder containing the script and CSV file. Run the following command, replacing placeholders with your actual values:python block_subscribers.py --username yourhandle.bsky.social --password "your-app-password" --list-id "your-list-id" --csv subscribers.csv
The script will read each DID from the CSV and add it to your moderation list. Wait for the script to finish. It may take a few minutes if you have many subscribers. - Apply the Block Action
Go back to Bluesky > Settings > Moderation > Moderation Lists. Find your list and click the three-dot menu. Select Block All. Confirm the action. Bluesky will block every account on the list.
Common Mistakes and Limitations
The Script Fails with Authentication Error
The most common cause is using your main password instead of an app password. Generate a fresh app password and use that. Ensure the username includes the full handle, such as myusername.bsky.social.
The CSV Does Not Contain a DID Column
Some exporter extensions name the column did differently, such as subscriber_did. Open the CSV in a text editor and rename the column to did. Remove any extra columns to avoid confusion.
Blocked Users Can Still See Public Posts
Blocking prevents a user from interacting with your posts or following you, but if your account is public, blocked users can still view your posts by logging out. To prevent that, switch your account to private in Settings > Privacy & Security > Public Account.
The Script Adds Only a Few DIDs
Bluesky API rate-limits list additions to about 100 per minute. The script handles this automatically, but it will pause between batches. Let it run uninterrupted. If the script stops early, run it again — it skips DIDs already in the list.
Manual Method vs Script Method
| Item | Manual Blocking | Script-Based Mass-Block |
|---|---|---|
| Time required for 100 subscribers | 15-20 minutes | 2-3 minutes |
| Technical skill needed | None | Basic command line knowledge |
| Risk of error | High (missed accounts) | Low (automated) |
| Reusability | Must repeat for each new subscriber | Script can be modified to run periodically |
The script method is faster and more reliable for large subscriber lists. Manual blocking is acceptable for fewer than 20 accounts.
Conclusion
You can now block all subscribers on Bluesky using a moderation list and a Python script. The process involves exporting subscriber DIDs, creating a block list, and running a script to populate it. After that, one click blocks everyone on the list. To keep your block list current, schedule the script to run weekly using a cron job or Task Scheduler. This approach saves hours of manual work and ensures no subscriber is missed.