All apps/Mail Deduplicate

Mail Deduplicate

mail-deduplicate

Remove duplicate emails from your mailboxes.

Runs as mdedup|macOS, Linux, Windows|kdeldycke.github.io

Command form

ai-draft · 2 tasks · 10 fields

Find duplicate mails across one or more mailboxes, pick which copy to keep with a strategy, then act on the result. The default action only copies the selection to a new box. Hash tuning, thresholds and the regexp-based strategies are left out.

Opens the form; the finished command lands at your prompt, unrun
otty gui mail-deduplicate
Deduplicate mailboxesExample values, fixed in this page — nothing here reaches a terminal
Basic
Mail sources*
any
Selection strategy*
select-onestring
Destination mailbox*
any
Dry run
--dry-run
TasksEach one presets the form for one job
Merge into a new mailbox
sourcesstrategyexportdry_run
Rehearse deleting duplicates
sourcesstrategyactiondry_run
ParametersOnly these flags are editable in the form
Mail sources
Mailboxes (maildir, mbox, ...) or mail files to deduplicate.
path · positional 0 · repeatable
Selection strategy
Which copy of each duplicate set is selected. Without one, nothing is selected and no action is taken.
string
--strategy-sselect-oldestselect-newestselect-biggestselect-smallestselect-oneselect-all-but-one
Action
Default copy-selected only reads the sources and writes a new box. The delete-* and move-* actions change the sources; rehearse with Dry run.
enum
--action-acopy-selectedcopy-discardedmove-selectedmove-discardeddelete-selecteddelete-discardedhardlink-discarded
Destination mailbox
Required by the copy and move actions.
path
--export-E
Destination format
enum · default: mbox
--export-format-emaildirmboxmhbabylmmdfeml
Append to existing destination
boolean
--export-append
Force input format
Leave unset to auto-detect maildir, mbox and eml.
enum
--input-format-imaildirmboxmhbabylmmdfeml
Hash mail bodies
enum · default: skip
--hash-body-bskiprawnormalized
Reuse hash cache
boolean
--cache
Dry run
Report what would be done without doing it.
boolean
--dry-run-n
SourcesEvery flag above is checked against these
help
Usage: mdedup [OPTIONS] MAIL_SOURCE_1 MAIL_SOURCE_2 ... -i, --input-format [maildir|mbox|mh|babyl|mmdf|eml] -b, --hash-body [skip|raw|normalized] --cache / --no-cache -s, --strategy [select-older|select-oldest|select-newer|select-newest|discard-newest|discard-newer|discard-oldest|discard-older|select-smaller|select-smallest|select-bigger|select-bigge…
help2026-10-27

kdeldycke.github.io

Before it fills your prompt, Otty checks the installed mdedup against its version. A form that does not match your version is not offered.