Skip to content

How I deleted all my old tweets using Python

I don’t like the idea of leaving around too many “historical” tweets with all the dumb things I tweet about.

So I decided to delete them all.

To do so I requested an archive of all my tweets on Twitter, from the Twitter settings.

The archive can take days to generate. My archive dated back to 2015, although I use Twitter since 2007. Maybe I already removed my past tweets in 2015, I don’t remember.

I got the archive, I downloaded it, then I unpacked the folder and I ran

python -m venv .venv
source .venv/bin/activate.fish
python -m pip install delete-tweets

Then I created the environment variables to set the keys of a Twitter app, required to run the whole process, as described on https://github.com/koenrh/delete-tweets:

export TWITTER_CONSUMER_KEY="your_consumer_key"
export TWITTER_CONSUMER_SECRET="your_consumer_secret"
export TWITTER_ACCESS_TOKEN="your_access_token"
export TWITTER_ACCESS_TOKEN_SECRET="your_access_token_secret"

I used the consumer and access keys of a Twitter app I already had (Twitter now has a process to create new apps, so you must be reviewed and approved to do the same if you don’t have an app already there).

Tip: when you define environment variables in this way, they are recorded by default in the shell history. To avoid that with the Fish shell, run a new shell with fish --private to start the shell in private mode.

Then I ran:

delete-tweets --until 2021-01-01 tweet.js

to delete all the tweets I tweeted before 2021. It took a little while, but it worked.

It took way more to get the archive from Twitter than to delete the tweets, but in the end I got a clean slate.


→ Here's my latest YouTube video

→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter

JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025

Bootcamp 2025

Join the waiting list