Bulk delete your own Discord messages. Clean your digital footprint.
Right To Forget (RTF) is a free, open source Chrome extension that gives you back control of your Discord history. Whether you want to exercise your right to be forgotten, clean your digital footprint before leaving a server, or simply bulk delete Discord messages you no longer want public — RTF handles it all from a polished, floating panel inside Discord itself.
RTF works across channels, DMs, and your entire message archive. It supports date ranges, regex filters, message interval picking, and archive-wide wipes using your Discord data export. Your data. Your right to forget it.
⚠️ Important: Please read the Disclaimer and Legal & Risk Disclosures before use. Automated message deletion may violate Discord's Terms of Service. Use at your own risk.
- One-click Load Status — Automatically populates Author ID, Server ID, and Channel ID from your current Discord session with a single button press
- Bulk delete Discord messages — Searches and deletes your own messages in any channel or DM at configurable speeds
- Date interval filter — Target only messages sent between two specific dates (after date / before date)
- Message interval filter — Pick a start and end message directly from the chat using an interactive click-to-pick overlay (with "Before 👆" / "After 👇" visual cues)
- Text search filter — Only delete messages containing a specific word or phrase
- Regex pattern filter — Apply a full JavaScript regular expression to match exactly the messages you want gone
- Has link / Has file filters — Narrow deletion to messages that contain URLs or file attachments
- Include pinned messages toggle — Choose whether pinned messages are included in the deletion sweep
- NSFW channel support — Opt-in checkbox to include NSFW channels in searches
- Wipe Archive — Import your Discord data export's
messages/index.jsonto queue deletion across every DM and channel in your entire history - Streamer mode (redact toggle) — Hides all sensitive information (user IDs, tokens, message content) behind a blur for safe screen sharing and screenshots; hovering reveals a tooltip
- Configurable search delay — Slider control (100ms – 60,000ms) to throttle how fast RTF pages through search results, reducing rate-limit risk
- Configurable delete delay — Slider control (50ms – 10,000ms) to throttle individual delete requests
- Automatic rate-limit handling — Detects HTTP 429 responses and dynamically backs off, adjusting delays in real-time
- Auth token auto-detection — Reads your Discord auth token automatically via localStorage or the Discord webpack chunk; manual paste supported as fallback
- Real-time progress bar — Visual progress indicator shown both in the panel and on the Discord toolbar icon while running
- Estimated time remaining (ETR) — Calculates and displays a live time estimate based on message count and configured delays
- Request latency tracking — Tracks last ping and exponential moving average ping, displayed in the log
- Throttle statistics — Reports total number of rate-limit events and cumulative throttle time
- Confirmation dialog — Shows a preview of messages to be deleted and estimated time before any deletion begins
- Archived thread handling — Automatically skips messages in archived threads to prevent infinite loops
- Draggable & resizable panel — The RTF panel can be dragged by its header and resized from any edge or corner
- Collapsible sidebar sections — All filter sections (General, Filter, Message Interval, Date Interval, Advanced, Wipe Archive) are independently collapsible
- Toggle sidebar — Hide the entire sidebar to maximize the log view
- Auto-scroll log — Automatically scrolls the log output as new entries arrive (toggleable)
- Clear log — One-click button to wipe the log area
- Stop button — Gracefully halts any in-progress deletion run
- Batch mode — Internal API for running multiple guild/channel jobs sequentially without re-confirmation
- Toolbar icon integration — Mounts a persistent eye icon in Discord's toolbar; turns red while a run is active; auto-remounts if Discord re-renders its toolbar
- Custom fonts — Uses Syne (UI) and JetBrains Mono (monospace log output) for a polished aesthetic
- CSS variable theming — Full dark theme built on CSS custom properties (
--accent,--red,--green, etc.) for easy customisation
RTF is a Chrome extension loaded in developer mode — no store listing required.
-
Download this repository
- Click the green Code button → Download ZIP, then extract it
- Or clone it:
git clone https://github.com/overstock/right-to-forget.git
-
Open Chrome Extensions Navigate to
chrome://extensionsin your address bar -
Enable Developer Mode Toggle Developer mode in the top-right corner of the Extensions page
-
Load Unpacked Click Load unpacked and select the folder containing the downloaded repository files (the folder that contains
manifest.json) -
Open Discord Go to discord.com/app. You will see the RTF eye icon appear in Discord's toolbar (top-right area). Click it to open the RTF panel.
Note: This method works on any Chromium-based browser — Brave, Microsoft Edge, Opera, Vivaldi, etc.
| Field | Description |
|---|---|
| Author ID | Your Discord user ID. Click me to auto-fill from your session. |
| Server ID | The server (guild) snowflake ID. Click current to auto-fill from the URL. Use @me for DMs. |
| Channel ID | The channel or DM snowflake ID. Click current to auto-fill. |
| NSFW checkbox | Check this if the target channel is marked NSFW. |
| Load Status | One-click button that fills Author ID, Server ID, and Channel ID simultaneously from your current Discord session. |
| Field | Description |
|---|---|
| Search | Only delete messages containing this exact text. |
| Has link | Restrict deletion to messages that contain a URL. |
| Has file | Restrict deletion to messages that contain a file attachment. |
| Include pinned | When checked, pinned messages are included in the deletion sweep. |
| Pattern | A JavaScript regular expression (case-insensitive). Only messages whose content matches will be deleted. Wrap in /slashes/ visually — enter just the expression body. |
Set a start and/or end boundary using message snowflake IDs.
- After message ID — Only delete messages sent after this message. Click Pick to interactively click a message in chat.
- Before message ID — Only delete messages sent before this message. Click Pick to interactively click a message in chat.
When you click Pick, RTF closes the panel, highlights the chat, and waits for you to click a message. The panel re-opens with the ID filled in.
- After date — Only delete messages sent after this datetime.
- Before date — Only delete messages sent before this datetime.
Dates are ignored when a Message Interval is also set.
See Advanced Settings below.
Import the messages/index.json file from your Discord data export to queue deletion across every DM and channel in your history. RTF will process each channel sequentially.
The Streamer toggle (top-right of the panel toolbar) enables redact mode. When active:
- All sensitive values (user IDs, tokens, message content) are hidden behind a dark block
- Fields with the
privattribute use disc masking (••••••) - Hovering over any redacted value shows a tooltip: "Streamer mode — info hidden"
- An alert reminds you to double-check before sharing your screen
Toggle it off by unchecking Streamer — no data is deleted or changed, it is purely a visual privacy mask.
| Setting | Default | Description |
|---|---|---|
| Search delay | 36,500 ms | Time between search page requests. Increase to reduce rate-limit risk on large accounts. Range: 100ms – 60s. |
| Delete delay | 1,000 ms | Time between individual delete requests. Higher values are safer. Range: 50ms – 10s. |
| Auth Token | Auto-detected | Your Discord authorization token. RTF attempts to read this automatically; paste manually here if auto-detection fails. This field is always masked. |
RTF automatically backs off when it receives a 429 Too Many Requests response — it adjusts both search and delete delays dynamically and logs the event.
See CONTRIBUTING.md for full guidelines.
Bug reports and feature requests go through GitHub Issues. Discussions and questions go in GitHub Discussions.
This project is licensed under the MIT License — see LICENSE for the full text.
Copyright © 2024 overstock
This script is provided for informational and functional purposes only, without any express or implied warranties of any kind, including but not limited to fitness for a particular purpose, non-infringement, or compliance with third-party platform policies. Use of this script constitutes acknowledgment that the user assumes full responsibility for any outcomes arising from its execution.
This script interacts directly with user accounts and may perform automated actions at a scale or frequency that exceeds standard human usage patterns. Such activity may be interpreted by platform operators as abusive, unauthorized, or in violation of applicable Terms of Service or Community Guidelines.
Users are solely responsible for ensuring that their use of this script complies with all relevant contractual obligations, platform rules, and applicable laws or regulations. The author(s) and distributor(s) of this script disclaim any liability for account restrictions, suspensions, terminations, data loss, or other adverse consequences resulting from its use.
By using this software, you expressly agree that you are acting at your own risk and that no guarantees are made regarding continued account integrity or access.