Native macOS app · open source

Erase your Discord past.

Bulk-delete your own Discord messages — across DMs, friends, and servers, or your entire history via data-package import. It runs inside your real, logged-in session, so nothing is ever uploaded and your token never leaves your Mac.

Your data never leaves your Mac MIT licensed No account, no server
this never happened 👀
delete this later
oops, wrong chat
J
Undiscordjosemsalcedoq
Direct Messages
Servers
Imported
N
nightowl
@nightowl · friend
17
M
mara.k
@mara · friend
638
L
leo
@leo · friend
8
P
pixel
@pixel · friend
13
J
J. Ortiz
@jortiz · friend
36
S
sam
@sam · friend
15
⚙ Advanced settings
6 selected~727 messages
Scan done. ~17 of your messages across 1 target(s).
Scanning 6 target(s)…
Scan done. ~727 of your messages across 6 target(s).
Deletes YOUR messages only, using your account token. Against Discord ToS — keep delays slow.
Built for a clean slate

Everything the userscript couldn't do — in one native app.

The original Undiscord makes you paste channel IDs one at a time. This finds your conversations for you, lets you multiselect, and reaches history the API won't even show.

Multiselect discovery

Your DMs, friends and servers, loaded automatically with avatars. Tick the ones to wipe — no hunting for IDs.

Your full history

Import your Discord Data Package to reach every DM and group you've ever had — including closed ones the API hides.

Won't get you rate-limited

A self-throttling engine with adaptive 429 back-off and enforced floors, ported and hardened from the original Undiscord.

Native & private

No browser extension, no server, no telemetry. It runs in your own session; your token never touches disk.

Three steps

Open it, pick what dies, hit delete.

Log in once

Launch the app and sign in to Discord like normal. It's a real, sandboxed browser window — your login is remembered.

Pick your targets

Switch between Direct Messages, Servers and Imported, filter, and check the conversations to clean. Narrow to a date range if you like, then scan to preview counts.

Delete, watch, done

Confirm and let it run — a live log and progress bar track every deletion. Stop any time; it resumes where safe.

Read this before you delete.

  • Your own messages only. It acts as your account with your own token — it can't touch anyone else's messages.
  • Against Discord's Terms of Service. Automating a user account can, in principle, get an account actioned — regardless of how slow you go. The delays reduce rate-limit bans, not ToS risk.
  • Deletion is permanent. Use Scan counts and the confirmation dialog first. There is no undo.
  • Not affiliated with Discord. This is an independent open-source tool. Use it on your own account, at your own risk.
The rate limiter

Slow on purpose. Adaptive by design.

Discord's search and delete routes throttle hard. The engine spaces requests out, backs off exponentially on every 429, waits out un-indexed channels, and skips messages it can't touch — then enforces hard minimum delays you can't lower, because faster traffic gets you throttled and looks automated.

search ≥ 2000ms delete ≥ 700msself-adjusting on 429
// on HTTP 429 while deleting
const w = resp.retry_after * 1000;
deleteDelay = w;              // raise the floor
await wait(w * 2);           // cool down 2×
return 'RETRY';

// enforced, non-negotiable minimums
MIN_SEARCH_DELAY = 2000;
MIN_DELETE_DELAY = 700;
Questions

The honest FAQ.

Will I get banned? +

Possibly. Automating a user account violates Discord's Terms of Service, and that risk exists no matter how slow you go. The rate limiter is designed to avoid rate-limit bans (429 storms), not to make the activity ToS-compliant. Deleting your own messages this way is common but never risk-free — decide accordingly.

Can it delete other people's messages? +

No. It authenticates as you, with your own token, so it can only delete messages you sent. The data package it can import also only contains your own messages.

What about DMs I closed, or people I'm not friends with? +

The Discord API only lists DMs you currently have open, plus your friends. To reach everything — closed DMs, one-off conversations, left groups — request your Discord Data Package (Settings → Data & Privacy → Request all of my Data), then import the .zip in the Imported tab. The app parses it and deletes directly by message ID.

Why a native app instead of the userscript? +

No browser extension to install, login persists, and it can do things a page script can't — like reading your data-package .zip from disk. It's still just a sandboxed web view running Discord's real web client, so it behaves like a normal browser session.

Is my token or data sent anywhere? +

No. There's no server and no telemetry. Everything runs locally on your Mac inside your own Discord session; your token is never written to disk or transmitted to any third party.

The app won't open — "unidentified developer". +

The DMG is unsigned/un-notarized (no paid Apple Developer account). On first launch, right-click the app → Open, or allow it in System Settings → Privacy & Security. You can also build it yourself from source with swift run.

Ready to clean house?

Download it, log in, and reclaim your history in a few clicks.