ShadowSync is a cross-platform tray app that mirrors selected USB folders to your computer using a shadow cache for fast incremental syncs.
ShadowSync is meant for a straightforward removable-drive workflow:
- Plug in a USB drive
- Pull the latest changes onto your computer
- Work from the local folder instead of the drive
- Push back to the USB only when you want to
- Eject safely from the tray when you're done
- Pull sync with either
USB -> shadow cache -> local folderor directUSB -> local folder - Optional push-back with either
local folder -> shadow cache -> USBor directlocal folder -> USB - Incremental syncing that skips unchanged files
- Per-job cache mode with optional custom shadow roots
- Tray controls for sync, updates, logs, folders, setup, and eject
- Native Rust setup wizard
- Single-instance protection and config recovery
- Local manifest state plus a USB-side sync marker for safer incremental runs
- Windows, macOS, and Linux release builds
- Download the right release for your platform from the GitHub Releases page.
- Launch ShadowSync and let it create its local app data files.
- Open the setup wizard from the tray and choose the actual USB source folder(s) plus the local target folder(s).
- Run
Sync from USB nowto pull files onto the machine. - Use
Sync to USB nowonly when you want to publish changes back to the drive.
This README stays short on purpose. Use the docs for setup details, behavior, and troubleshooting:
- 🌐 Docs site
- 🛠️ Getting Started
- 🧩 Configuration
- 🖱️ Tray App
- 🔄 Sync Model
- 🧹 Reset and Cleanup
- 📦 Installer and Releases
cargo test --locked
cargo wizard
cargo build --releaseTo open only the setup UI without starting the tray workflow:
cargo wizardFor a release-mode UI run:
cargo wizard-releaseFor the closest thing to a native Rust "dev server" for the wizard, use cargo-watch so the UI rebuilds and relaunches on every save:
cargo install cargo-watch
cargo watch-wizardTo keep tests running while you edit:
cargo watch-testsThese aliases are development-only helpers from .cargo/config.toml. They do not add runtime or release bloat.
For docs previews:
python -m pip install -r requirements-docs.txt
python -m mkdocs serveShadowSync was built with AI-assisted tooling and then refined through manual review and iteration.