Userscript that allows you to mass unsend all your DMs on Instagram
As of 2023 instagram.com doesn't allow batch unsending of messages which is why this project came to be.
The userscript allows a user to batch unsend DMs in a thread on the web version of instagram.com
Deleting a thread will only delete messages on your end but the other party will still be able to read your messages.
On the other hand, unsending of a thread will result in the deletion of messages on both ends, rendering the other party unable to read your messages.
This script is meant to be run on the page that lists the message threads.
** The UI will only appear once you select a message thread ** :
The workflow works as follow:
find-messages-strategy
against parts of the workflow).
For each message do the following:
Dispatch a mouseover for this message so that the three dots button appears.
Click the three dots button to open the message actions.
Click the "Unsend" action button, a modal will open with a dialog that asks the user to confirm the intent.
Click the "confirm" button inside the modal.
There is no concurrency. Messages are unsent one after the other by using a queue.
Install a Userscript manager for your browser :
Finally, install the userscript from OpenUserJS :
Install latest stable release
Install development (master) version
Older releases
I recommend using Violentmonkey or something similar and enabling userscript autoreloading as explained here : https://violentmonkey.github.io/posts/how-to-edit-scripts-with-your-favorite-editor/
Install dependencies:
npm install
To both serve and build with autoreloading:
npm start
This will also start an HTTP server and allow autoreloading of the userscript as changes are made.
You can also do a one-time build with:
npm run build
The script will build to
dist/idmu.user.js
by default.
Instagram web app is serving different UIs, probably based on the user location. Yours might not be supported
Link to the issue : #1
Please do set the
NODE_NO_WARNINGS=1
to disablepunycode
deprecation warnings.
Use the DEBUG=idmu:test
env to enable debug logs while testing.
Lint files:
npm run lint:ecmascript
Run test with ava:
npm test
Coverage:
npm run test:coverage
Contributions are more than welcome.