{"id":13477113,"url":"https://github.com/eyalroz/removedupes","last_synced_at":"2026-03-02T17:33:42.516Z","repository":{"id":38320664,"uuid":"274684219","full_name":"eyalroz/removedupes","owner":"eyalroz","description":"Remove Duplicate Messages","archived":false,"fork":false,"pushed_at":"2026-01-04T19:00:01.000Z","size":8981,"stargazers_count":107,"open_issues_count":40,"forks_count":9,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-01-08T21:35:47.269Z","etag":null,"topics":["cleaner","cleanup","duplicate-detection","duplicates","email","email-parsing","mail-client","mail-folders","mozilla","productivity","thunderbird","thunderbird-addon","thunderbird-extension"],"latest_commit_sha":null,"homepage":"https://addons.thunderbird.net/en-US/thunderbird/addon/removedupes/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eyalroz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"patreon":"einpoklum","custom":"https://paypal.me/eyalroz"}},"created_at":"2020-06-24T14:04:42.000Z","updated_at":"2026-01-04T19:00:04.000Z","dependencies_parsed_at":"2024-01-13T19:19:56.964Z","dependency_job_id":"30c84e43-9484-4798-b94a-7e95310e39bf","html_url":"https://github.com/eyalroz/removedupes","commit_stats":null,"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/eyalroz/removedupes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalroz%2Fremovedupes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalroz%2Fremovedupes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalroz%2Fremovedupes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalroz%2Fremovedupes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eyalroz","download_url":"https://codeload.github.com/eyalroz/removedupes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eyalroz%2Fremovedupes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30011965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T17:00:27.440Z","status":"ssl_error","status_checked_at":"2026-03-02T17:00:03.402Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cleaner","cleanup","duplicate-detection","duplicates","email","email-parsing","mail-client","mail-folders","mozilla","productivity","thunderbird","thunderbird-addon","thunderbird-extension"],"created_at":"2024-07-31T16:01:38.407Z","updated_at":"2026-03-02T17:33:42.490Z","avatar_url":"https://github.com/eyalroz.png","language":"JavaScript","funding_links":["https://patreon.com/einpoklum","https://paypal.me/eyalroz"],"categories":["JavaScript"],"sub_categories":[],"readme":"# removedupes: Remove duplicate messages\u003cbr\u003efrom Thunderbird mail folders\n\n\u003csub\u003e([See it also on `addons.thunderbird.net`](https://addons.thunderbird.net/en-US/thunderbird/addon/removedupes/))\u003c/sub\u003e\n\n\nSo, you use the Thunderbird mail client, and...\n\n* you have somehow managed to re-download some of them more than once due to some server error?\n* or you're getting the same messages through different mail accounts?\n* or you've just copied some messages into a large folder a while ago, and now wish you hadn't?\n\nthen removedupes is the extension for you!\n\n* You pick the folder(s) to check for duplicates;\n* Removedupes identifies and collects the duplicates.\n* (Optionally) You get a dialog for reviewing the search results, picking and choosing what to keep or remove.\n* Removedupes deletes all the duplicates, keeping the originals.\n\nPretty straightforward, right? And it is also safe: By default, \"deletion\" means moving to the Trash folder, so you can change your mind.\n\n## The dupe review dialog in action\n\n![removedupes in action](https://github.com/eyalroz/removedupes/blob/master/.github/images/basic_screenshot.png?raw=true)\n\nNote that this is from an older version of Thunderbird; but the review dialog looks pretty much the same today.\n\n## Key features\n\n- Choice of multiple **comparison criteria** (subject, author, date, etc).\n- Comparison of **message bodies** upon request.\n- Ability to perform a dupe **search across multiple folders**.\n- **Convenient review dialog** for double-checking which duplicates to delete and which to keep.\n- Good **performance** on local folders with large number of messages; reasonable performance with IMAP and RSS accounts.\n- Ability to **tweak criterion semantics** (e.g. time resolution, strip \u0026 sort addresses).\n- Spiffy **toolbar button+menu** for running the dupe removal and enabling/disabling comparison criteria.\n\n## \u003ca name=\"credits\"\u003eCredits\u003c/a\u003e\n\nThanks goes out to:\n\n*   The tireless translators of the [BabelZilla](http://www.babelzilla.org/) project.\n*   alta88 (who prefers his relative anonymity) for QA help.\n*   The denizens of [#mozilla.de@moznet](irc://irc.mozilla.org/%23mozilla.de) for some help with the German localization.\n*   A good number of casual users who patiently and informatively reported bugs.\n\nSpecial thanks to Moritz Abraham who was kind enough to delist his own rudimentary dupe removal extension in favor of this extension.\n\n\n## Bugs, suggestions, feedback\n\n### \"Is the extension compatible with my version of Thunderbird?\"\n\nThunderbird has been changing dramatically in recent years, and thuse different versions of the extension are compatible with different ranges of Thunderbird versions. At any given time, the latest release of the ectension _should_ be compatible with the latest release of Thunderbird; but as released are made, allow for a short period of time before the extension is updated to be compatible with the new release.\n\n### \"The extension isn't working! What's wrong?\"\n\nRead the [FAQ section of the wiki](https://github.com/eyalroz/removedupes/wiki/FAQ-(Frequently-Asked-Questions)); your answer is probably in there.\n\n### I have a specific bug, issue, question or feature request\n\nPlease search the [issues page](https://github.com/eyalroz/removedupes/issues) of this repository, to check if it's already been reported. If not, file a new issue. If you'd like to tell me (the author) something about the extension and/or the state of Thunderbird in general - you can [write me](mailto:eyalroz1@gmx.com).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyalroz%2Fremovedupes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feyalroz%2Fremovedupes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feyalroz%2Fremovedupes/lists"}