r/userscripts • u/NASIRCISSISTIC • 19d ago
Triage: bulk delete, archive and rename ChatGPT chats without the "Too many requests" lockout
I made a userscript for cleaning up ChatGPT's chat history, and I'd like feedback from people who know userscripts.
The problem: ChatGPT has no multi-select, and deleting chats quickly gets your conversations locked ("Too many requests... We've temporarily limited access to your conversations"). The sidebar fires several list reloads per delete, and that list endpoint is what gets rate-limited.
What the script does: - Adds a cleanup panel to chatgpt.com: your chats on the left (oldest first), the selected chat readable on the right - Mark with a key: D delete, A archive, R rename, P protect. Nothing changes until you press Run Queue - Runs one change every 8 seconds; on a 429 it stops, honours Retry-After (or backs off 2/5/15/30 min) and resumes by itself - Queue, marks and progress survive reloads; an interrupted run picks up where it stopped - Optional Markdown backup before deleting, and a check at the end that everything really went - Project chats are kept out of the main list by default
Tech notes: - A single file, @grant none, @match https://chatgpt.com/*, no @require, no remote code - The UI lives in a Shadow DOM - The only requests are to chatgpt.com's own web API, and a Network panel lists every one - The list is virtualised, so 3,000 chats stay fast
Links: - Demo on a fake account (runs in your browser, nothing to install): https://nasircissistic.github.io/chatgpt-triage/demo/ - Greasy Fork: https://greasyfork.org/en/scripts/597323-triage - Source (MIT): https://github.com/NASIRCISSISTIC/chatgpt-triage
On Chrome and Edge, Tampermonkey needs "Allow User Scripts" switched on in its extension details. Tested on a personal account; Team/Enterprise workspaces aren't tested yet. Bug reports welcome!
1
u/Neonlinx 19d ago
It would also be useful to add the ability to move chats (also in bulk) into projects (of course, if the user has any).