Sync Reliability Suite

MirrorFlow

Two-way folder sync that can tell your edit apart from the other side's.

Free right now — no account, no card

Get MirrorFlow free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design MirrorFlow, 1 of 1
Screenshot MirrorFlow running on Windows today

Free while we’re in preview

Get MirrorFlow

Two-way folder sync that can tell your edit apart from the other side's.

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, MirrorFlow is included in every plan along with the rest of the range.

Why there’s a baseline

A one-way mirror never has to think. It overwrites in the direction it was pointed. The moment you want changes flowing both ways, that’s how work gets lost.

MirrorFlow records a baseline at the end of each successful run. Next time it compares three things instead of two: side A, side B, and what the two last agreed on. That’s enough to separate “added on A” from “deleted on B”, and to catch the case that matters, where both sides changed the same file.

What happens to a conflict

Under the default manual policy, nothing happens. It reports the conflicts, refuses the whole run and exits 2, so you can’t end up half synced. newest, larger and keep-both resolve automatically, and even they won’t flip a coin: two conflicting versions with the same modification time under newest are left alone and reported.

Nothing is hard-deleted. Losing copies and propagated deletes are moved into .mirrorflow-trash/ inside that side’s root. Emptying it is your decision.

Limits worth knowing

Both sides are ordinary local paths. No SSH, no S3, no cloud endpoints. A changed file is copied whole, so editing one byte of a 4 GB video copies 4 GB. And it runs when you run it; there’s no watcher and no scheduler.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working CLI prototype of true two-way sync: a persistent baseline lets it tell “you changed it” from “they changed it”, so one-sided edits propagate in the right direction and genuine both-sides edits are flagged as conflicts instead of being silently overwritten. By default it refuses the whole run rather than pick a side — verified that both versions survive untouched — with newest/larger/keep-both available when you want it decided. Deletes go to a trash directory, never unlink.

Recorded session

Recorded terminal session showing MirrorFlow running
A real recorded session — MirrorFlow’s actual output, captured by running the shipped binary.

Naming status

Working name only — brand verdict **AVOID** (Very High). Collision: MirrorFlow. 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.

mirrorflow 1.0.0 - two-way folder sync with real conflict detection
Techlosoft Sync Reliability Suite (Pro)

USAGE
  mirrorflow init   <dirA> <dirB> --state <state.json>
  mirrorflow status <dirA> <dirB> --state <state.json> [--json]
  mirrorflow sync   <dirA> <dirB> --state <state.json> [--policy P] [--apply] [--json]
  mirrorflow help | -h | --help

COMMANDS
  init     Record the current contents of both folders as the sync baseline.
           Nothing is copied, moved or deleted.
  status   Read-only three-way comparison (A vs B vs baseline). No changes.
  sync     Propagate one-sided changes in the correct direction and handle
           genuine conflicts according to --policy.

FLAGS
  --state <file>   Path to the persistent sync-state database (required).
  --policy <name>  Conflict resolution policy for "sync" (default: manual)
                     manual     do not resolve; report and exit non-zero
                     newest     the more recently modified side wins
                     larger     the larger file wins
                     keep-both  keep both, renaming the loser to
                                <name>.conflict-<side>-<timestamp><ext>
  --apply          Actually perform the changes. WITHOUT THIS FLAG MIRRORFLOW
                   IS A DRY RUN and writes nothing at all.
  --json           Emit a machine-readable JSON report on stdout.

HOW IT CLASSIFIES
  Every file is compared by SHA-256 content hash on both sides and against the
  hash recorded at the last successful sync, so a file whose mtime changed but
  whose bytes did not is correctly reported as "unchanged".

    unchanged      identical on both sides
    new-on-A/B     added on one side since the baseline
    changed-on-A/B modified on exactly one side
    deleted-on-A/B removed on one side, untouched on the other
    conflict       both sides changed since the baseline, or one side deleted
                   a file the other side modified

...

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