A file is copied only if it matches at least one rule in .sync — gitignore-style bare lines, the inverse of gitignore: a line lists what to copy. No match means no copy.
Atomic copies
Temp file in the destination's own directory, then fsync + rename. A reader sees either the old file or the new one, never a partial copy.
Never deletes
A file removed or renamed at the source stays in the backup. The backup is copy-and-update only — history by construction.
fswatch + launchd / systemd
Native watching through fswatch (FSEvents on macOS, inotify on Linux), with a launchd agent or a systemd user unit that starts at boot and restarts the daemon if it dies.
Zero dependencies
Pure Python standard library. The only external pieces are fswatch and the OS init system — launchd on macOS, systemd on Linux.