Skip to content
DuoBolt

FAQ

Quick answers on how DuoBolt hashes with BLAKE3, handles NAS drives and symlinks, removes duplicates safely (via the system Trash or to an archive folder), detects APFS clones on macOS, and performs across macOS, Windows, and Linux — covering both the Desktop app and the CLI.

DuoBolt Desktop

Use the UI, preview duplicates, and remove them safely — via the Trash/Recycle Bin or by moving them to an archive folder.

Best for: Visual workflows, everyday users, safe removal.

DuoBolt CLI

Automate scans, run on servers, output JSON/CSV/TXT, and never delete files.

Best for: Automation, scripting, CI/CD, servers.

Feature / CapabilityDuoBolt DesktopDuoBolt CLI
PlatformsWindows & macOSWindows, macOS, Linux
InterfaceFull graphical UITerminal / command-line
Scan EngineShared between Desktop and CLI
HashingBLAKE3 (full-content + default head+tail prehash)
ResultsVisual grouping, previews, chartsTXT / JSON / CSV output
RemovalYes — Trash, or move-to-archive folderNo removal — scan only
FiltersInclude/Exclude extensions, folder types, ignore rulesSame filters via flags (--only-ext, --exclude-ext, etc.)
Symlink HandlingFollow / collapse symlinks--follow-symlinks, --no-symlink-collapse
Performance ControlsThreads UI, prehash toggle, chunk size tuning--threads, --chunk, --no-prehash
Ideal ForEveryday users, professionals, visual workflowsAutomation, pipelines, scripting, CI jobs
Output DetailVisual duplicates explorerMachine-readable structured output
Learning CurveVery lowMedium (terminal knowledge needed)
PricePaid (one-time license)Free
Modifies FilesYes, only when user confirms (Trash or move-to-archive)Never modifies files

Results will match if you use equivalent settings.

Differences arise only if:

  • Extension filters are different
  • Ignore/system/hidden options differ
  • Symlink behavior is configured differently
  • CLI uses optional custom tuning (threads, chunk size, prehash toggle). If no values are provided, DuoBolt automatically selects optimal settings for the system.

Known for:

  • High throughput
  • Cryptographic safety
  • SIMD and multi-core scaling
  • Excellent performance on large datasets

Both Desktop and CLI use the same BLAKE3 implementation.


You review duplicates visually and decide what to delete.

Deletion happens through the system trash, keeping it safe and reversible. Or, if you’d rather not trust the Trash’s time-to-live, you can Move to Archive instead — see the next question.


What’s the difference between deleting and archiving?

Section titled “What’s the difference between deleting and archiving?”

DuoBolt Desktop offers two ways to remove duplicates:

  • Delete sends files to the system Trash/Recycle Bin. Reversible from the OS Trash until emptied — and from DuoBolt’s own Deletion History, which keeps a record of every removal long after the OS Trash is gone.
  • Move to Archive moves files to a folder of your choice (local or external) with their original directory structure preserved. Useful when you want to set duplicates aside without trusting the Trash’s time-to-live, or when you want a single audit folder for everything you’ve cleaned. Archives appear alongside deletions in Deletion History, with a Review Archive page that restores selected files back to their original paths.

A “Exclude archive folders from scans” setting (on by default) automatically keeps your archive folders out of future scans, so archived duplicates don’t bounce back as duplicates of themselves.


What happens if I archive files on a different volume?

Section titled “What happens if I archive files on a different volume?”

Archive folders can live on any volume — the same disk, an external drive, a NAS, etc. The behavior differs slightly:

  • Same volume (APFS): the move is a fast rename; clone-shared files keep sharing extents at the destination, so disk usage stays the same.
  • Different volume: the move becomes a copy + delete, so the archived files occupy real bytes at the destination volume.

The Deletion History event card labels archived totals as “X archived” (size of the archived content) rather than “X freed”, since cross-volume archives don’t free space at the source — they relocate it.


Yes. USB, SD cards, external SSD/HDD devices work normally.

Performance depends on:

  • Drive type (SSD vs HDD)
  • USB speed (USB 2.0 will be slow)
  • File system permissions
  • Antivirus intercepting reads

No. Scanning is read-only, and modern SSDs are engineered for extremely high read endurance.


Why do I see fewer duplicates compared to other apps?

Section titled “Why do I see fewer duplicates compared to other apps?”

Because DuoBolt avoids false positives.

Examples:

  • It always performs full-content hashing. The default head+tail prehash only filters candidates; --no-prehash still hashes full content, so accuracy remains identical.
  • It respects system/hidden/ignore rules
  • Symlink collapse avoids counting hardlinked files as duplicates
  • Folder-extension exclusions skip .app, .bundle, .pkg, etc.

For maximal breadth:

  • Enable Follow symlinks
  • Disable Ignore System Files
  • Disable Ignore Hidden Files
  • Remove include/exclude extension filters

Why does DuoBolt say I have duplicates but no space can be freed?

Section titled “Why does DuoBolt say I have duplicates but no space can be freed?”

On macOS APFS volumes, files can share storage at the filesystem level — for example, files copied with cp (which uses APFS clones by default), Time Machine snapshots, or build caches like cargo target/. From the filesystem’s perspective they’re distinct files with different inodes, but they reference the same physical bytes. Deleting them does not free disk space.

DuoBolt Desktop detects these clone groups and reports 0 B recoverable for them, so you don’t waste a deletion that can’t recover space. The “Detect APFS clones” toggle in Advanced → Performance options is on by default. Turn it off if you want to see all logical duplicates regardless of physical sharing — useful for cleaning up redundant entries in preset libraries or app data folders, where the goal is organizational rather than freeing disk space.

On non-APFS volumes (Windows, Linux, HFS+, SMB) the toggle is a no-op and behavior is unchanged.


Head+tail prehash runs by default:

  1. Hash the first and last N KiB of each file
  2. Fully hash only the files whose partial hashes match

Add --no-prehash to skip the prefilter and hash files in a single pass. Accuracy is identical either way, but it’s recommended to leave prehashing on unless you have a specific compliance or debugging reason.


Potential causes:

  • Mechanical HDD instead of SSD — solution: run scans from SSD-backed locations or smaller batches.
  • Very high number of tiny files — solution: raise min size to skip trivial files.
  • Antivirus scanning each file read — solution: add DuoBolt to the AV allow-list during scans.
  • External USB 2.0 drive — solution: expect slower scans; copy locally or limit scope.
  • Restricted directories — solution: ensure permissions or skip protected paths.
  • Too many filters limiting parallelism — solution: simplify filters to let scanning parallelize.

For better performance in general:

  • Leave the default prehash on for very large datasets; add --no-prehash only if you truly need single-pass hashing.
  • Adjust threads if needed (--threads=N). By default DuoBolt auto-selects optimal values; manual tuning is optional.
  • Avoid scanning cloud-synced folders that re-download files on access.

Yes — that’s what DuoBolt CLI is for.

Examples:

launchd
duobolt-cli ~/Documents --output=json --quiet > ~/dupes.json

Scripts: Embed the same command and parse JSON/CSV in Bash/PowerShell/Python.


Usually not. You only need admin rights for other users’ home folders, locked system directories, or restricted/mounted drives.

  • Other users’ home folders
  • Certain system directories
  • Drives mounted with restricted ACL permissions

Extremely accurate. Accuracy is based on:

  • Full BLAKE3 hashing
  • Default head+tail prehashing (same precision, can be disabled with --no-prehash)
  • Full-file comparison when needed
  • Strict grouping logic
  • Symlink awareness

False positives are effectively impossible.


No — the core engine is proprietary.

A trimmed-down, open-source CLI wrapper may be released in the future, but the scanning engine itself remains closed-source.