CleanDis cuts Discord down to what you actually use. Hide chrome you don't need, block handles by name or variant, get pinged when a watched user shows up, export entire channels, and repaint everything with a theme engine. No telemetry. No network calls. Free.
A stylized chat-app with sample messages on the left, a popup-style toggle column on the right. Flip a switch and the corresponding rows hide in real time, exactly like the real extension does on Discord. Add a name to the watchlist and an Auto-Alert toast pops in. Everything stays on this page.
Eleven independent toggle gates ride on the <html> root. Flip what you want gone, leave the rest. Auto-empty collapses messages whose only content was just hidden, so you don't end up with rows of empty bubbles.
Add a handle and CleanDis collapses every message, member-row, mention chrome, typing indicator, and reply-author header from that user — to a 6-pixel slim placeholder, not display:none, so Discord's chat virtualizer doesn't lose its place. Flip aggressive variant matching on and we also catch leet-speak and repeat-character spoofs of the same name.
Add a username to the watchlist. The instant they come online or post in a channel you're in, a discreet in-page toast slides up from the corner. Per-target cooldown keeps things sane; a 1-second bootstrap window suppresses the noise from "everyone just appeared online because the page reloaded".
Add a channel to the watchlist with a per-channel timer (presets: 30s · 5min · 1hr · 24hr). Every message you send in that channel after opting in gets a 💀 0:30 countdown badge that ticks down in place. When it hits zero, CleanDis sends a real DELETE request to Discord — the message is gone for everyone, not just you.
chrome.storage.local; survives SW suspend, tab reload, browser restart
Auto-detects the channel you're in. Pick a range — last N, since a date, or everything — and CleanDis paginates Discord's own message API, formats the result, and hands it to chrome.downloads. The token never touches storage or analytics: it's read from localStorage in the page, held in service-worker memory for one operation, then nulled.
finally. Never logged. Never persisted.
Fifteen prebaked themes ship in /themes/. Open the in-Discord cog panel to swap by clicking visual cards. Paste a JSON blob to import a friend's palette — export your own to share it back. Edit any prebaked, and your edits override the shipped version on disk.