--every takes minutes or hours (30m, 6h). Re-running with a new interval replaces the old one. Logs land at ~/.duckbrain/<instance>/logs/sync.log, and the schedule pins the instance that was active when you ran the command (DUCKBRAIN_INSTANCE).
macOS: launchd
Installs a LaunchAgent at~/Library/LaunchAgents/sh.duckbrain.sync.plist. Uses launchd, not cron: jobs missed while the laptop sleeps fire on wake instead of being skipped.
Linux: systemd user timer
Installsduckbrain-sync.service + duckbrain-sync.timer under ~/.config/systemd/user/ and enables the timer. Persistent=true is the systemd analog of launchd’s fire-on-wake: a run missed while the machine was off fires at next boot.
On a headless VM or server, run
loginctl enable-linger $USER once so the user timer runs without an active login session.Verify
sync holds a single-flight lock, so overlapping triggers no-op instead of racing.