You can use this script to delete all your Tweets. Even if they don't show up on your profile. But you need your Data Export for it to work. Because this automates the deletion, it may get your account banned. Not a bad outcome.
English: youtube.com/watch?v=jB1-z6LbX5w
German: youtube.com/watch?v=HmQ7_ZgVNxg
If the process is interrupted at any time, you can use the advanced options to enter how many Tweets have been deleted in the previous run to not start at zero again. The script will try to automatically detect if it was run before by calcualting the difference between Tweets in the file and the Tweet count on the profile. If there is a difference it will try to automatically skip that amount (+5% buffer). If you want it to start from the beginning, open 'Advanced options' and enter 1 instead of 0. It will the skip exactly one Tweet and not try to calculate an amount.
Instead of copy-pasting the script, you can install it as a userscript: greasyfork.org/en/scripts/476062-tweetxer (works with eg. Violentmonkey, FireMonkey or tampermonkey browser addon)
The userscript works on smartphones as well.
Never use something like this from an untrusted source. The script intercepts requests from your browser to Twitter and replaces the Tweet-IDs with IDs from your tweets.js file. This allows it to access the old Tweets and delete them.
XHR interception inspired by github.com/ttodua/Tamper-Request-Javascript-Tool
Faster deletion inspired by github.com/Lyfhael/DeleteTweets
Because bookmarks aren't included in the Twitter data export, there is a button under "Advanced options" to export them.
If for some reason you can't use your data export or it missed some Tweets, you can use slow mode under "Advanced options". Be warned, it is very slow because it has to load the Tweets on your profile first to delete them and there are various request limits for that.
Under "Advanced options" you can automatically unfollow everyone. You may need to rerun with some time in between because of rate limits.
I can't paste the script.
Your browser tries to protect you from pasting some random script you found. Type "allow pasting" (Firefox) or "allow pasting" (Chrome) and hit enter to confirm that you know what you are doing.
X Corp doesn't send me my data export.
Try requesting it through their Privacy Form.
Check if the ID of the remaining Tweet is in your data export. The script can only remove what's in the file. There is a option to automatically remove remaining Tweets under "Advanced options" but it is very slow. If there are many Tweets, re-run the script. Maybe request a new export.
In most cases those are Retweets from Tweets from accounts that got deactivated or banned. Sometimes the Tweets reappear once the accounts come back, sometimes they don't. There is nothing you can do.
Only the last few hundred can be be removed. Even by hand. There is nothing you can do other than deleting your whole account. Or reliking Tweets to unlike them afterwards which will probably get your account locked for spamming.
Browser crashes
This happens more often with Chrome and Chrome-based browsers. Especially when removing more than 15 k Tweets. Closing the browser console while it runs seems to reduce the crashes.
It worked and you are thankful.
Awesome. Share the script on whatever platform you are using now to give others the option to delete their Tweets. Support me to keep creating things like this: buymeacoffee.com/lucahammer