npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

xpost-pulverizer

v1.0.0

Published

A powerful Python tool for bulk-deleting your old X (Twitter) tweets with CLI and TUI interfaces.

Downloads

89

Readme

🔥 Xpost Pulverizer

Xpost Pulverizer is a powerful Python tool for bulk-deleting your old X (Twitter) tweets. It works by parsing your easily requested X Data Archive and filtering tweets down locally before sending deletion requests via the Twitter v2 API.

It features two interfaces: a CLI Hacker Dashboard and a Textual Terminal UI (TUI).

✨ Features

  • Double Interface: Choose between a high-speed CLI dashboard or a visual TUI control panel.
  • Dry Run by Default: Test your filters safely. It will literally NEVER delete anything unless you explicitly arm the live mode.
  • Complex Filtering:
    • 📅 Date Ranges: Delete tweets sent before, after, or between specific dates.
    • 💬 Keywords: Wipe tweets containing specific cringe words or starting with prefixes (e.g., RT @).
    • 📉 Engagement: Clean out tweets that flopped (e.g., less than 5 likes / 2 retweets).
  • Rate Limit Armor: Automatically detects Twitter's strict API rate limits, initiates a 15-minute wait, and securely resumes the queue without crashing.
  • Asynchronous & Thread-Safe: The TUI runs API tasks in the background, keeping the interface snappy and responsive.

🚀 Setup

1. Requirements

Ensure you have Python 3.10+ installed.

git clone https://github.com/radikonreturn/Xpost_Pulverizer.git
cd Xpost_Pulverizer

# Install dependencies
pip install -r requirements.txt

2. Getting Your Data Archive

  1. Open X (Twitter) on the web.
  2. Go to Settings and privacy > Your account > Download an archive of your data.
  3. Once downloaded and extracted, find the file data/tweets.js.
  4. Copy tweets.js into this tool's data/ folder (create the folder if it doesn't exist):
    Xpost_Pulverizer/
    └── data/
        └── tweets.js

3. Getting API Keys

You need a Free Twitter Developer Account.

  1. Go to the Twitter Developer Portal.
  2. Create a Project and an App.
  3. Under User Authentication Settings, enable OAuth 1.0a and set App Permissions to Read and Write.
  4. Generate your keys: API Key, API Key Secret, Access Token, and Access Token Secret.

🖥️ Usage: The Terminal UI (Recommended)

The interactive TUI gives you a visual dashboard to configure filters, preview tweets, and monitor live deletions.

python xpost_pulverizer_tui.py
  • Sidebar: Enter your API Keys and dial in your filters.
  • Preview Table: Hit Load Archive to parse your data locally. The table will populate with the tweets matching your filters.
  • Dry Run: Press 🟢 DRY RUN to simulate the deletion queue in the Event Log.
  • Live Delete: Toggle the Dry Run switch off and hit 🔴 DELETE to start nuking your posts permanently. Press q at any point to safely emergency-stop the worker thread.

⌨️ Usage: The Hacker CLI

If you prefer scripting or running commands directly, use the CLI. It features a beautiful colorama box-drawing UI.

# View all available flags
python xpost_pulverizer.py --help

Environment Variables

For the CLI, it's recommended to store your API keys in your environment variables:

export XPOST_API_KEY="your_api_key_here"
export XPOST_API_SECRET="your_api_secret_here"
export XPOST_ACCESS_TOKEN="your_access_token_here"
export XPOST_ACCESS_TOKEN_SECRET="your_access_token_secret_here"
``` *(In Windows PowerShell, use `$env:XPOST_API_KEY="...`)*

### CLI Examples

**Safe Dry Run (List all tweets)**
```bash
python xpost_pulverizer.py -a data/tweets.js

Delete Old Retweets

python xpost_pulverizer.py -a data/tweets.js -e 2022-12-31 --starts-with "RT @" --delete

Delete Low-Engagement Cringe

python xpost_pulverizer.py -a data/tweets.js --contains cringe ratio --max-likes 2 --delete

⚠️ Warning

  • Permanent Action: Tweets deleted through the API cannot be recovered. Always verify your filters using a Dry Run first.
  • Rate Limits: The free Twitter v2 API restricts you to 50 deletes per 24 hours (or 1,500 per month depending on tier changes). If you hit the ceiling, the script will gracefully pause and wait, but it may take days to clear hundreds of thousands of tweets.

📝 Logs

Every action (DRY, DELETE, API ERROR) is logged to pulverizer_log.txt. The log file automatically rotates with date-stamps when it exceeds 1MB.