Skip to content

Effortlessly manage and bulk delete your Snapchat messages πŸ’¬ with this advanced TypeScript UserScript, featuring a sleek UI ✨, auto-scroll πŸ“œ, themes 🎨, and persistent settings πŸ’Ύ!

License

Notifications You must be signed in to change notification settings

mathe00/snapchat-chat-bulk-delete-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘» Snapchat Chat Bulk Delete (TypeScript Version)

Snapchat Chat Bulk Delete Logo

🧹 Effortlessly bulk delete your Snapchat messages!

Tired of manually deleting Snapchat messages one by one? This UserScript is your ultimate solution to reclaim your chat history with ease! πŸš€ Automate the deletion of your own messages on Snapchat Web with a user-friendly interface, configurable options, and a non-intrusive approach.

πŸš€ Install the Script Now (from Greasy Fork)! πŸš€


✨ See it in Action! ✨
Watch a quick demonstration of the script:

example_video_v3.1.5.mp4

(If the video doesn't load, you can also open it directly.)


TL;DR (Too Long; Didn't Read)

  • What is this? A UserScript to bulk delete your own messages on Snapchat Web.
  • Why? To save time, enhance privacy, and finally get rid of messages from people who never let them auto-delete πŸ˜’.
  • How? Simulates user actions (hovers, clicks) – no API hacking.
  • Install: Click here to install from Greasy Fork! (or see full installation steps).
  • Cool Features: Sleek UI ✨, auto-scroll πŸ“œ, light/dark themes 🎨, persistent settings πŸ’Ύ, deletion order control, message counter.
  • Basically: Automate tedious clicks to clean up your Snapchat chats.

Table of Contents


πŸ“œ Description

Snapchat Chat Bulk Delete (TypeScript Version) is an advanced UserScript for Snapchat Web (www.snapchat.com/web) designed to help you efficiently bulk delete your own chat messages. This script operates by simulating normal user interactions (like mouse hovers and clicks) on the Snapchat Web interface. It does not interfere with network requests or use any private APIs. Think of it as a helpful macro to automate a repetitive task that is otherwise tedious to perform manually.

The primary goal is to provide a user-friendly way to manage your chat history and remove sensitive data, a process that Snapchat's native interface does not easily facilitate for bulk actions. This is a TypeScript rewrite of the original JavaScript UserScript, offering improved maintainability, type safety, and a modular project structure.

πŸ•΅οΈβ€β™‚οΈ Why This Script? The Origin Story

Privacy is a big deal, right? Ever thought about those Snapchat messages you sent, like, 10 years ago? Yeah, me too. It'd be nice to clean those up, especially since some folks insist on disabling auto-delete after 24 hours and hoarding messages for ages. Seriously, who does that? πŸ˜’ It just triggers me! If you're one of those message-hoarders, we're probably not on the same team here. πŸ˜‰

If you've got hundreds, or even thousands, of messages to delete, doing it manually is a soul-crushing nightmare. I wanted something like the awesome undiscord tool, but for Snapchat. The moment Snapchat Web dropped, this idea sparked. I even remember seeing someone else, somewhere on the vast internet (OpenUserJS, Greasy Fork, Reddit? The post is lost to time, sadly 😩), asking for pretty much the same thing – a bulk delete for Snapchat Web. While I couldn't find that specific original plea, the sentiment is widespread. For instance, among many similar complaints, this Reddit user back in 2020 was already looking for ways to mass delete messages, even considering modified APKs before Snapchat Web was a thing. I really hope that original person, and others like them, stumble upon this project! If that's you, hello!

Let's be real, Snapchat not having this feature natively in 2025 is just... not cool and frankly, quite annoying. So many articles and Reddit threads are filled with people asking how to do this. It's a pain point for many. Now, thanks to this project, there's a solution for Snapchat Web.

My UserScript aims to ease that pain. Currently, it's pretty respectful of Snapchat's setup – less "aggressive" and automated than tools like undiscord. You still need to move your mouse over your messages, but once you do, zap! They're gone, without you needing to hunt for the tiny delete icon and confirm. I might explore a more automated version down the line, undiscord-style. It feels doable, a bit more challenging, but if I put my mind to it, I'm sure I can get there!

✨ Key Features

  • πŸ—‘οΈ Bulk Message Deletion: Deletes your own messages from the currently open chat.
  • πŸ–₯️ User-Friendly Interface:
    • Sleek, modern, and minimizable control panel.
    • Draggable panel to position it anywhere on the screen.
  • βš™οΈ Configurable Deletion Order:
    • Delete messages from Newest to Oldest (default).
    • Delete messages from Oldest to Newest.
  • 🎯 Automatic Message Detection: Identifies user's own messages based on their unique appearance in the chat.
  • πŸ–±οΈ Efficient Deletion Process: Simulates hovers and clicks to reveal and use the delete option.
  • πŸ“œ Auto-Scroll (Configurable):
    • Automatically scrolls up the chat to load older messages when no more messages are found in the current view.
    • Can be toggled on/off.
  • 🎨 Theme Options:
    • Auto: Panel theme automatically matches Snapchat's page theme (Light/Dark).
    • Light: Forces a light theme for the panel.
    • Dark: Forces a dark theme for the panel.
  • πŸ’Ύ Persistent Settings: User preferences (deletion order, auto-scroll, theme, panel position, minimized state) are saved and loaded across sessions.
  • πŸ“Š Deletion Counter: Displays the number of messages deleted in the current chat and in total for the session.
  • 🚦 Status Indicators: Provides visual feedback for active deletion and auto-scrolling.

πŸ€” How it Works (Non-Intrusive)

This script is designed to be as non-intrusive and transparent as possible:

  • Simulates User Actions: It programmatically performs actions you could do manually: hovering over a message to reveal options, then clicking the "Delete" button, and confirming the deletion.
  • No Network Manipulation: The script does not intercept, modify, or send any custom network requests to Snapchat's servers. All actions are performed through the existing web interface.
  • Client-Side Only: All operations occur within your browser.
  • Time-Saving Utility: Its purpose is to save you the time and effort of manually clicking "delete" on hundreds or thousands of messages one by one, which is a permitted action.
  • Data Privacy Focused: The script helps users exercise their ability to remove their own data and conversations from the platform more efficiently.

Essentially, it automates a series of legitimate clicks that you are entitled to make.

πŸ› οΈ Installation

  1. Install a UserScript Manager:
    • Tampermonkey (Recommended for Chrome, Edge, Safari, Opera)
    • Violentmonkey (Recommended for Firefox, also works on Chrome/Edge)
  2. Install the Script:
    • From Greasy Fork (Recommended - Easiest!):
    • From GitHub (Alternative):
    • From OpenUserJS:
      • ⏳ Publication pending. (Currently facing technical difficulties with their icon handling. Will revisit later if the data:URL method for the icon doesn't work.)

πŸš€ Usage

  1. Open Snapchat Web and log in.
  2. Open the chat from which you want to delete messages.
  3. The script's control panel should appear on the page (usually top-left by default, or its last saved position).
  4. Configure Settings (Optional):
    • Click the Gear icon (βš™οΈ) to open the settings section.
    • Order: Choose "Newest β†’ Oldest" or "Oldest β†’ Newest".
    • Auto-Scroll: Toggle the switch to enable/disable automatic scrolling to load older messages.
    • Click the Palette icon (🎨) in the header to cycle through panel themes (Auto, Light, Dark).
  5. Start Deletion:
    • Click the "START" button on the panel.
    • The button will change to "PAUSE", and the script will begin hovering over your messages and clicking the delete option.
  6. Pause Deletion:
    • Click the "PAUSE" button to stop the deletion process.
  7. Panel Management:
    • Drag: Click and drag the top bar of the panel (where the title is) to move it.
    • Minimize: Click the Close icon (βœ•) in the panel header to minimize it to a small button (usually bottom-right). Click the minimized button to restore.
    • Information: Click the Info icon (ℹ️) for script details.

⚠️ Important Notes

  • Snapchat UI Changes: Snapchat frequently updates its web interface. These updates can break the script if CSS selectors for messages, buttons, or menus change. If the script stops working, it likely needs its selectors updated. Please check for updates or report an issue.
  • Rate Limiting & Fair Use: While this script simulates human-like clicks with delays, deleting an extremely large number of messages very rapidly could theoretically trigger Snapchat's automated systems designed to prevent abuse or bot-like activity. The script includes delays to be considerate, but it's always wise to use such tools responsibly. Deleting messages is a permitted action; this script just helps you do it more efficiently for your own data.
  • Only Your Messages: This script is designed to identify and delete your own messages. It relies on specific visual cues in the DOM that differentiate your messages from others.
  • No Guarantees: This script is provided as-is, without any warranty. Use it at your own risk. The author is not responsible for any unintended consequences.

πŸš€ Future Features (Roadmap)

  • πŸ“¦ Publish on UserScript Hosting Sites:
    • Publish on Greasy Fork for easier installation.
    • Publish on OpenUserJS.org for wider availability. (Status: ⏳ Pending - icon issues. Next attempt will be with a data:URL for the icon if current 64x64px icon fails.)
  • πŸ€– More Automated Deletion Mode (Undiscord-style): Investigate and potentially implement a mode that requires less manual mouse movement, similar to how undiscord operates, while still respecting Snapchat's interface.
  • πŸ› οΈ Refinements & Optimizations: Continuously improve message detection, deletion speed (within safe limits), and UI responsiveness.
  • 🌍 Localization: Add support for more languages in the UI panel if there's demand.

πŸ‘¨β€πŸ’» For Developers

This project is built with TypeScript and uses esbuild for bundling.

Project Structure

snapchat-chat-bulk-delete-ts/
β”œβ”€β”€ dist/                     # Output directory for the built .user.js script
β”‚   └── snapchat-chat-bulk-delete.user.js
β”œβ”€β”€ src/                      # TypeScript source files
β”‚   β”œβ”€β”€ config.ts             # Configuration, constants, selectors
β”‚   β”œβ”€β”€ deleteCounter.ts      # Logic for counting deleted messages
β”‚   β”œβ”€β”€ domUtils.ts           # DOM manipulation utilities
β”‚   β”œβ”€β”€ gmApi.ts              # Utilities for GM_* functions (e.g., loading logo)
β”‚   β”œβ”€β”€ main.ts               # Main entry point, initialization
β”‚   β”œβ”€β”€ state.ts              # Global state management and error handling
β”‚   β”œβ”€β”€ themeManager.ts       # Panel theme management
β”‚   β”œβ”€β”€ types.ts              # TypeScript type definitions
β”‚   └── ui.ts                 # UI panel creation and management
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE                   # MIT License file
β”œβ”€β”€ README.md                 # This file
β”œβ”€β”€ build.mjs                 # esbuild build script
β”œβ”€β”€ example_video_v3.1.5.mp4  # Demo video file
β”œβ”€β”€ logo.png                  # Original script logo image file (e.g., 512x512)
β”œβ”€β”€ logo_64.png               # Resized script logo for UserScript icon (64x64)
β”œβ”€β”€ package-lock.json         # Exact versions of dependencies
β”œβ”€β”€ package.json              # Project dependencies and scripts
└── tsconfig.json             # TypeScript compiler configuration

Building from Source

  1. Prerequisites:
  2. Clone the repository:
    git clone https://github.com/mathe00/snapchat-chat-bulk-delete-ts.git
    cd snapchat-chat-bulk-delete-ts
  3. Install dependencies:
    npm install
  4. Build the script:
    • For a single build:
      npm run build
    • To watch for changes and rebuild automatically:
      npm run watch
    The built UserScript will be located in the dist/ folder.

🀝 Contributing

Contributions, bug reports, and feature requests are welcome! Please feel free to open an issue or submit a pull request.

When reporting issues, please include:

  • Your browser and version.
  • Your UserScript manager (Tampermonkey/Violentmonkey) and version.
  • Steps to reproduce the issue.
  • Any error messages from the browser console (F12 > Console).

πŸ’– Support the Project

If you find this script valuable, especially if it saves you the headache of manual deletions or helps you reclaim your digital privacy, please consider showing some love.

Developing and maintaining this, even as a "vibe coded" project, takes time and effort – all provided for free to the community. A small contribution is greatly appreciated and helps fuel future updates and more "vibe coding" sessions!

I currently accept donations through:

Bitcoin (BTC) zpub6nL6JpeLNPiK44KpPbBxQc8emSar7ZsbvLf1vbQsYmUAaHNj289i9q2XtE4H5cYLiFCxWSpWP88HBf7F75n34998LDutyHkdzKBJYxyMDoQ

Ethereum (ETH) & ERC20 Tokens 0xe0b8007dca71940ab09a2e025f111216f0eb1c4e

If you have any questions about donations or encounter any issues, please feel free to open a GitHub issue.

⭐ Show Your Support

If you find this script useful, please consider giving it a star on GitHub! It helps others discover the project and motivates further development. 😊

πŸ‘¨β€πŸ’» A Note from the Author (Kind Of)

Quick heads-up: I'm not exactly a pro developer. I navigate by feel and intuition quite a bit, and a lot of my projects on GitHub (including this one) are what you might call "vibe coded." πŸ˜… This means they often come together through experimentation and following the flow, rather than strict plans.

But hey, as long as it works, doesn't introduce security risks, and gets the job done, that's what counts for me, and hopefully for you too! I think the code isn't too messy, so if any actual developers want to jump in and contribute, you're more than welcome!

πŸ“œ License

This project is licensed under the MIT License. You can find the full license text in the LICENSE file at the root of this repository.

βš–οΈ Disclaimer

This script is an independent project and is not affiliated with, endorsed by, or sponsored by Snap Inc. It is a tool designed to assist users in managing their own data on the platform by automating actions they could perform manually. Use of this script is at your own risk. The developers assume no liability for any actions taken by the script or any consequences thereof.

About

Effortlessly manage and bulk delete your Snapchat messages πŸ’¬ with this advanced TypeScript UserScript, featuring a sleek UI ✨, auto-scroll πŸ“œ, themes 🎨, and persistent settings πŸ’Ύ!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published