reflect-sync

Open Source • MIT • Node 22+

Bidirectional sync that is fast, deterministic, and inspectable.

reflect-sync keeps two trees in sync over SSH using rsync + SQLite state. No black-box daemon behavior, no hidden conflict files, and clear logs for every decision.

Install in under a minute

pnpm install -g reflect-sync
# or
npm i -g reflect-sync

reflect --help
reflect create ~/alpha user@server:/srv/alpha
reflect sync 1

Deterministic merge behavior

State is stored in SQLite and resolved with explicit last-write-wins logic, so decisions are reproducible and auditable.

SSH-native operation

Uses familiar endpoints like user@host:/path, persistent ControlMaster connections, and rsync transfer efficiency.

Observability first

Structured logs, progress streams, query commands, and inspectable DB files make it easy to understand exactly what changed and why.

Why teams pick reflect-sync

Criteria reflect-sync
Two-way sync between two roots Built for this directly
Deterministic conflict policy Last-write-wins + explicit side preference
Debuggability SQLite state + structured logs + query CLI
Transport and compatibility SSH + rsync with Linux and macOS focus

Start with one real project.

If your workflow is laptop ↔ server, container ↔ host, or staging ↔ prod, reflect-sync is designed for exactly that shape.

Read The Quick Start