SyncGuard
Mirrors one folder onto another, and shows the plan before touching anything.
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 SyncGuard
Mirrors one folder onto another, and shows the plan before touching anything.
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, SyncGuard is included in every plan along with the rest of the range.
Nothing happens until you say so
syncguard mirror ~/work /mnt/backup/work
That prints the plan and writes nothing. Which files it would copy because they’re new at the destination, which it would update because they’ve changed, and how many extra files are sitting at the destination that aren’t in the source. Add --apply once the plan looks right.
It compares content, not the clock
Both trees are hashed with SHA-256 before anything is planned, and a file counts as changed when its hash differs. A copy that came back with a mangled mtime won’t fool it, and neither will a file that got touched but not edited. The cost is honest: every run reads every byte on both sides, so this suits a project folder rather than a 4 TB archive over a slow link.
Deleting takes two flags
--apply on its own only ever adds or updates at the destination. It will not remove anything. For a true mirror, where files you deleted from the source vanish at the destination too, you pass --delete as well. Two separate opt-ins, because that’s the flag people regret.
--log appends one JSON line per action actually taken. This build is one-way and local to local; two-way sync with conflict resolution is roadmap.
Reading on the job itself
- How to keep two folders in sync without losing anything Decide first whether one side is authoritative. If it is, mirror one way and think hard before enabling del...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the sync engine: one-way mirror sync with a dry-run plan preview, opt-in delete-extraneous mode, and a JSON-lines audit log. Two-way sync with conflict resolution and cloud/NAS targets are still on the roadmap.
Naming status
Working name only — brand verdict **AVOID** (Very High). Collision: SyncGuard. Rename completely.
What it draws on
Existing paid software whose best ideas shaped this program: GoodSync, Syncovery, SyncBackPro, ViceVersa Pro.
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.
SyncGuard — one-way mirror sync with a dry-run preview and audit log
Usage:
syncguard mirror <src> <dst> [--delete] [--apply] [--log FILE]
Without --apply: dry run, prints the plan, touches nothing.
--delete removes dst files that no longer exist in src (opt-in, only
takes effect together with --apply).
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