Skip to content

Releases: vincentmathis/threads-cleaner

v1.0.4

Choose a tag to compare

@vincentmathis vincentmathis released this 18 Jun 11:11

What's new

Locale support (German, Spanish, French, Italian, Portuguese)

  • More button SVG now also matches Mehr, Mas, Plus, Altro, Mais alongside More
  • Menu/confirm "Delete" buttons found by position (last menuitem, last dialog button) instead of text — works in any language
  • Error toast detection broadened to �rror, wrong, ry again, schief, ehler

Faster post deletion

  • Posts are now deleted in-place on the profile page — no more opening each individual thread
  • Same scroll-on-delete pattern as replies
  • Removed _collect_post_urls (30 lines of dead code)

Ghost-post handling

  • When the page shows posts you used to reply to (but your reply is gone), the tool now detects them and stops immediately instead of scrolling through endless ghost posts
  • Added _has_other_svgs check: if SVGs exist but none match your user, break early

Other fixes

  • Install-browser: uses Playwright's bundled Node driver directly (no PATH/python probing)
  • Login: sets PLAYWRIGHT_BROWSERS_PATH before launch (same fix as BrowserDeleter.start)
  • .gitignore: added .env to prevent secret leaks

v1.0.3

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 09:57

Fixes

login command failed with "Playwright browser not installed" right after install-browser. The login command had its own Playwright launch code that didn't set PLAYWRIGHT_BROWSERS_PATH. In the PyInstaller exe, the driver looks for browsers in the wrong place (the temp extraction dir) unless this env var is set. The delete commands worked because BrowserDeleter.start() set it, but login bypassed that function.

Now login sets the env var the same way before launching.

v1.0.1

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 10:16

What's new

Landing page at vincentmathis.github.io/threads-cleaner — fancy tabbed install instructions (EXE / pipx / uv tool).

Published to PyPI! Install cross-platform via:

pipx install threads-cleaner
uv tool install threads-cleaner
pip install threads-cleaner

login now opens threads.com directly instead of about:blank.

login no longer crashes after install-browser — sets PLAYWRIGHT_BROWSERS_PATH the same way the delete commands do.

install-browser no longer probes pyenv/PATH — uses Playwright's bundled driver directly.

v1.0.0

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 09:19

v1.0.0 — Stable release

Breaking (CLI)

The old browser-delete subcommand is gone. Delete is now the default action:

Before After
threads-cleaner browser-delete --target both threads-cleaner --target both
threads-cleaner browser-delete --headed --max 5 threads-cleaner --headed --max 5
threads-cleaner browser-login threads-cleaner login

What's new in this release

  • --newer-than: delete items newer than a duration or ISO date
  • ISO date support: --older-than and --newer-than both accept ISO dates (e.g. 2026-06-01)
  • Date logging: each deletion shows the item's timestamp
  • No pre-scroll: deletes visible items immediately, scrolls on demand
  • Replies from replies tab: no thread navigation needed
  • Dedup: already-processed SVGs are skipped to prevent infinite loops

v0.3.4

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 09:12

What's new

--newer-than — delete only items newer than a date. Accepts durations (7d, 24h, 2w, 1m, 1y) or ISO dates (2026-06-01, 2026-06-15T12:00:00Z). Can be combined with --older-than.

ISO date support — both --older-than and --newer-than now accept ISO date strings in addition to duration shorthand.

Date logging — each deletion now shows the post/reply's timestamp:
OK deleted reply 1 (2026-06-13T13:09:14.000Z)

v0.3.3

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 08:57

What's fixed

Replies loop could delete the same item repeatedly. After deleting a reply on the replies tab, Threads keeps the DOM element in place. Without tracking, the next iteration finds the same More button and tries to delete an already-deleted item — which wastes time or loops forever.

Fix: each More SVG gets \data-oc-processed\ before the delete attempt. The JS selector skips SVGs with that attribute, so already-processed items are never candidate for deletion again.

Also simplifies \delete_replies: deletes directly on the replies tab page — no navigating into individual threads.

v0.3.2

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 08:50

Replies are now deleted directly from the replies tab (@username/replies/) — no navigating into individual threads and scrolling through comments. Each reply has its own More button right on the replies page.

v0.3.1

Choose a tag to compare

@vincentmathis vincentmathis released this 17 Jun 08:44

What's changed

CLI

  • *--target\ / -t* replaces --include-replies: choose \posts\ (default),
    eplies, or \�oth.

Performance

  • No more upfront mega-scroll. Deletes the first visible item immediately, scrolls on demand only when no more items are found. Previously it scrolled 18 times before starting, which was wasteful for small --max\ or --older-than\ runs.

Replies fix

  • The replies page now scrolls within each thread (up to 5×) to find your reply among other comments. Before, replies buried deep in a thread were missed.

Upgrading

Replace --include-replies\ with --target both\ or --target replies.

v0.3.0

Choose a tag to compare

@vincentmathis vincentmathis released this 12 Jun 13:52

What's new

  • Standalone exe: hreads-cleaner.exe — no Python needed. Download from assets below.
  • Browser automation works reliably: fixed menu/dialog click targeting, silent-false-positive fallthrough, Windows console encoding.
  • Cleaner project: removed unused source files, proper .gitignore. Run hreads-cleaner install-browser first if using the exe.

Usage

\
threads-cleaner browser-login # log in once
threads-cleaner browser-delete # delete posts
threads-cleaner install-browser # if using the exe
\\

Assets

  • \ hreads-cleaner.exe\ — standalone Windows executable (70 MB, ~250 MB extracted)
  • \ hreads_cleaner-0.3.0-py3-none-any.whl\ — pip-installable wheel