shreddit

Crates.io

shreddit is a tool to delete Reddit comments and posts.

Deactivating a Reddit account will not delete comments or submissions - it will only disassociate your account from them.

Shreddit overwrites your comments with random text before deleting them to ensure that the originals are (probably) not preserved.

If you don't want your post history to follow you around forever, you can use shreddit on a cron job.

If you're deactivating your account, you can run shreddit first to ensure your posts are deleted.

About

Because the original Shreddit project was abandoned in 2017, I decided to rewrite it in Rust.

This brings several benefits:

Installation

Manual

Download the binary from the GitHub Releases page.

Cargo

cargo install shreddit

How to use

``` Overwrite and delete your Reddit account history.

Usage: shreddit [OPTIONS] --username --password --client-id --client-secret

Options: -u, --username Your Reddit username [env: SHREDDITUSERNAME=yourusername] -p, --password Your Reddit password [env: SHREDDITPASSWORD=SuperSecretPassword123] --client-id To create client credentials, you need to navigate to https://www.reddit.com/prefs/apps/, click create another app... and fill out the form. Select the script type, and set redirect uri as http://localhost:8080 [env: SHREDDITCLIENTID=lk4j56lkj3lk4j5656] --client-secret The client secret from when you created client credentials [env: SHREDDITCLIENTSECRET=kl2kj3KJ345lkhRAWE] --dry-run If set, shreddit will not modify or delete anything. It will simply log what it would do if not in dry run mode. This allows you to preview the plan of action before executing [env: SHREDDITDRYRUN=false] --thing-types What "things" you want to delete [env: SHREDDITTHINGTYPES=posts,comments] [default: posts comments] [possible values: posts, comments, friends] --before [env: SHREDDITBEFORE=2023-01-01T00:00:00Z] [default: "2023-03-02 17:49:30.225134209 UTC"] --max-score [env: SHREDDITMAXSCORE=100] --user-agent The User-Agent for Reddit API requests [env: SHREDDITUSERAGENT=ShredditRustClient] [default: ShredditRustClient] --gdpr-export-dir The path of the directory of the unzipped GDPR export data. If set, shreddit will use the GDPR export folder instead of Reddit's APIs for discovering your data [env: SHREDDITGDPREXPORTDIR=/home/you/Downloads/exportyourusername_20230101] -h, --help Print help -V, --version Print version ```

You can choose to pass in configuration settings via CLI arguments like:

shreddit --username YouRedditUsername --password YourSuperSecretPassword123 --client-id k1jh2342k3j --client-secret 2345JHLJ_34kjhkj3h453453

or by setting them as environment variables (e.g. SHREDDIT_CLIENT_SECRET) and simply running shreddit.

On startup, shreddit looks for a shreddit.env file in the current directory and sets any variables declared there. However, this is purely optional.

Dry run

You can use --dry-run or SHREDDIT_DRY_RUN=true to see what it would do without it actually doing anything.

Delete ALL your data using GDPR export

  1. Request an archive of all your data by following these steps.
  2. Download the archive and extract it.
  3. Run shreddit with the --gdpr-export-dir flag set to the path of the directory it was extracted to.

Other features

These are the other features Python Shreddit had.

I'll be adding these as I go along. PRs are welcome!

Other feature ideas are welcome.