SyncProof
Copies one build to three shares at once and says which share came out bad.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get SyncProof
Copies one build to three shares at once and says which share came out bad.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, SyncProof is included in every plan along with the rest of the range.
The fan-out is the whole feature
You push a build to three shares and one of them silently comes out wrong. Single-destination tools make you run three copies and correlate three reports. SyncProof does all three in one pass and prints one matrix: destination, status, files, copied, skipped, verified, mismatch, missing. A destination that can’t even be created fails on its own row with a reason while the other two finish and verify normally. Exit 2 if any destination failed, which makes it usable as a gate.
It doesn’t trust the write call
After a file is written, SyncProof re-opens it from the destination and hashes what actually landed there. Not the size, not the timestamp. One flipped byte in a file of unchanged length is caught. syncproof verify does that on its own, months later, with no copying at all: which files still match, which are corrupted, which have gone missing. Files are written to a .part name and renamed only once flushed, so a real filename never holds half a file.
Current edges
Destinations must be local paths, which includes a mounted share, but it can’t dial a UNC path or authenticate. A file that differs at all is copied whole. It never deletes: extra files at a destination are left alone.
Reading on the job itself
- How to copy a large folder and know every file arrived Copy first, then re-read every file from the destination disk and compare its checksum against the source. ...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the fan-out verification engine: push one source tree to several destinations at once, re-read and hash every file that lands, and report a per-destination pass/fail matrix. Verified to catch a single flipped byte in one destination (same file size) and a deleted file in another while the third reports clean, with a broken destination never blocking the others. Network/SMB destinations and delta transfer are on the roadmap.
Recorded session
Naming status
Working name only — brand verdict **CAUTION** (Medium-Low). Collision: No material exact software collision surfaced. One of the better candidates; formal clearance then use alternate domain if needed.
What it draws on
Existing paid software whose best ideas shaped this program: TeraCopy Pro, Beyond Compare, SyncBackPro, Copywhiz.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
syncproof 1.0.0 - verified multi-destination copy & sync
SyncProof pushes ONE source tree to N destinations in a single run, then
re-reads every written file and checks its SHA-256 against the source, so you
know exactly which destination came out bad.
USAGE
syncproof push <src> --dest <d1> [--dest <d2> ...] [--workers N] [--apply] [--json]
syncproof verify <src> --dest <d1> [--dest <d2> ...] [--workers N] [--json]
syncproof help | -h | --help
syncproof version
COMMANDS
push Copy every source file to EVERY destination, then verify each
destination independently by hash. DRY RUN unless --apply is given.
verify No copying at all. Report per destination which files match, which
are corrupted (hash mismatch) and which are missing.
FLAGS
--dest PATH Destination root. Repeat once per destination (required).
--workers N Parallel workers across all destination/file pairs
(default: number of CPUs, max 8).
--apply Actually write. Without it, push only reports the plan.
--json Machine-readable report on stdout.
SAFETY
push is a dry run by default; nothing is written without --apply.
Data is written to "<name>.part" and renamed only after a successful write,
so a real filename is never left holding a half-written file.
EXIT CODES
0 every destination verified OK (or dry run completed)
1 usage error / source unreadable
2 at least one destination failed, mismatched or is missing files
EXAMPLES
syncproof push ./build --dest /mnt/share-a --dest /mnt/share-b --apply
syncproof verify ./build --dest /mnt/share-a --dest /mnt/share-b --json
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan