DuoBolt
macOS · APFS clone-aware · 1.4

The bytes DuoBolt shows you equal what your disk frees

Most duplicate finders count logical file sizes. On macOS, that's a lie: files copied with cp, snapshotted by Time Machine, or cached by build tools share storage at the filesystem level — deleting one of them frees nothing. DuoBolt 1.4 detects these APFS clone groups so every number in the UI reflects what your drive actually recovers, not what naïve arithmetic suggests.

Lifetime Desktop license · $29.99 · 2 seats · 30-day refund
v1.4.0 · macOS & Windows · Docs
DuoBolt 1.4 scan of a Muir Beach folder showing Total Wasted Space of 8.21 MiB at the top — a non-clone JPG duplicate group reports 3.16 MiB total, while a clone group of three 609.77 MiB DSC_0860.MOV videos reports 0 B recoverable next to 1.79 GiB total, and the bottom toolbar shows '0 B selected' for two ticked clone videos

Why naïve duplicate counts are wrong on APFS

When macOS copies a file on the same APFS volume, it doesn't duplicate the contents on disk — it creates a second directory entry pointing at the same physical blocks. Time Machine local snapshots, Apple Photos library imports, video editing project caches, Xcode's DerivedData, and most modern build tools rely on this. The result: your filesystem honestly reports three copies of a 609.77 MiB video, but every one of them shares the same blocks on disk. A less-honest duplicate finder would tell you 'recoverable: 1.79 GiB' and the number would be fiction. DuoBolt walks the APFS clone metadata directly, identifies which files share storage, and excludes that storage from the recoverable total. The group reports '0 B recoverable · 1.79 GiB total'. The dashboard's Total Wasted Space header reads 8.21 MiB instead of nearly 1.8 GiB, because 1.79 GiB of those duplicates aren't real bytes on disk. Selection size, the Review screen total, and the delete confirmation all read from the same clone-aware accounting — so the bytes you see before clicking Delete match what your disk will actually free.

Honest selection size

Tick clones for deletion and the bottom toolbar shows the bytes your disk will actually free — not file size × count. Select two clones of a 1.79 GiB video and the toolbar reads '0 B selected', because that's what your disk will do.

Group-level transparency

Groups with shared APFS storage display "X recoverable · Y total" in the header. You see at a glance which duplicates will free space and which are bookkeeping copies of bytes you've already counted.

Detected at scan time

Clone groups are identified during the scan itself by reading APFS inode metadata directly. No second pass, no UI guesswork — the recoverable number is final the moment the scan finishes.

macOS-only, zero overhead elsewhere

Clone detection runs on APFS volumes by default. On Windows, Linux, HFS+, or SMB shares it's a no-op — behavior is identical to pre-1.4. Toggleable per scan via Scan Setup → Advanced mode.

How clone-aware accounting works

Four stages between the scan finishing and the recoverable number you see in the UI. The first is the standard DuoBolt pipeline; the next three are the additions in 1.4.

  1. Step

    Group duplicates as usual

    DuoBolt walks your scan roots and groups duplicates by full BLAKE3 hash — the same exact, byte-for-byte matching as any other DuoBolt scan.

  2. Step

    Read APFS clone metadata

    For each duplicate group on an APFS volume, DuoBolt asks the filesystem which files share physical storage. This is metadata, not content — milliseconds, not megabytes.

  3. Step

    Compute recoverable per group

    Each shared-storage chain counts only once toward the group's recoverable total. The "total" still reflects the logical sizes you'd see in Finder, so both numbers are available when you need them.

  4. Step

    Propagate to every UI surface

    Selection size, the Review screen total, the Total Wasted Space header, and the delete confirmation all read from the same clone-aware accounting. Nowhere in the app will you see an inflated number.

APFS clone detection FAQ

What is an APFS clone?
When you copy a file in Finder or with `cp` on the same APFS volume, macOS doesn't duplicate the bytes on disk — it creates a second directory entry that points at the same physical blocks. Both files are real and independent (editing one creates a new copy on disk), but until then they share storage. Time Machine local snapshots, Xcode's DerivedData caches, and many build tools rely on the same trick.
Why does my disk fill up if duplicate finders find gigabytes to recover?
Because most duplicate finders count logical file sizes, not blocks on disk. They tell you 'recoverable: 1.79 GiB' across three copies of a 609.77 MiB video — but if those files are APFS clones sharing the same physical blocks, the real recoverable space is 0 B. Delete two of the three and the disk frees nothing. DuoBolt 1.4 reports the truth upfront: '0 B recoverable · 1.79 GiB total', and propagates the same honesty to the Total Wasted Space header at the top of the scan. The first number is what your disk will actually free; the second is what naïve arithmetic suggests.
Does clone detection slow down scans?
No measurable impact. The clone check is a per-group metadata lookup against APFS — milliseconds across a typical scan. The expensive work (reading and hashing file contents) is unaffected. Benchmarks against pre-1.4 builds show the same scan times within run-to-run variance.
What happens on Windows, Linux, or non-APFS volumes?
Clone detection is a no-op. DuoBolt reports a single 'total' number per group — the same as pre-1.4 builds. There is no APFS equivalent on NTFS, ext4, HFS+, or SMB shares, so nothing to detect. Cross-platform behavior is unchanged.
Can I turn clone detection off?
Yes, per scan. In Scan Setup, switch to Advanced mode and toggle 'Detect APFS clones' under Performance options. It's on by default. Most users have no reason to disable it — when no clones exist, the feature is invisible and the numbers match pre-1.4 exactly.
Why don't other duplicate finders detect APFS clones?
It requires reading inode-level filesystem metadata that most cross-platform engines don't touch, plus a willingness to report two different numbers per group instead of one. Consumer duplicate cleaners optimize for a single satisfying 'X GB recovered' headline — even when that headline isn't accurate.