Fast, local-first backup and upload companion for your Immich server on macOS.
README · Install · Dev Build · How It Works · Contributing · MIT License
ImmichSync keeps a local copy of your Immich assets and can watch a local folder to upload new files back to your server. It is designed for reliable syncing with clear status, safety controls, and a menu bar companion.
Thanks to the Immich team for creating such a wonderful tool. ImmichSync is a community project and is not affiliated with Immich.
- Download
ImmichSync.dmgorImmichSync.zipfrom the latest release:
https://github.com/bjoernch/Immichsync/releases/latest - Open the DMG/ZIP and drag
ImmichSync.appto/Applications. - Important: copy it into
/Applicationsbefore running any terminal commands or opening the app. - If macOS says the app is damaged, run:
xattr -dr com.apple.quarantine /Applications/ImmichSync.app- If macOS blocks it, right‑click the app → Open, or allow it in System Settings → Privacy & Security.
- Run this once:
xattr -dr com.apple.quarantine /Applications/ImmichSync.app- Go back to the DMG window and drag
ImmichSync.appinto/Applicationsagain. It should copy and open normally.
swift run./scripts/build-app.shOutput: dist/ImmichSync.app
./scripts/package-release.shOutputs: dist/ImmichSync.zip and dist/ImmichSync.dmg
- If assets or permissions look wrong, delete the app data folder:
~/Library/Application Support/ImmichSync - If the menu bar icon does not update, quit and relaunch the app.
- If macOS blocks the app, use Open from the right‑click menu.
- Download assets with filters (photos/videos), album filters, and folder structure rules.
- Upload watcher for a local folder (queue + live sync).
- Menu bar status with quick controls.
- Scheduling + background launch agent for unattended syncs.
- Speed stats, status lists, and sync history.
- Optional server duplicate checking before upload.
- Supports flat, year, and year/month folder structures.
- Optional sidecar metadata JSON.
- Optional integrity verification (size + checksum).
- Local duplicate scan with a safety cap for large libraries.
- Watches the selected folder and optional subfolders.
- Server-side duplicate check can skip already uploaded items.
- Local upload history prevents re-uploads unless cleared.
- All uploads go to the main Immich timeline.
- Quick validation of server URL and API key.
- Displays which features are available based on permissions.
ImmichSync targets macOS 13.0+.
To use all features, grant these API key scopes:
asset.readasset.downloadasset.uploadalbum.readduplicate.readserver.about
- API key is saved locally only after you click Save API Key.
- Keychain storage is available only when Touch ID is enabled.
- Touch ID gating is optional and protects access to the app UI.
- Preferences:
UserDefaults - App data:
~/Library/Application Support/ImmichSync - Keychain entry: service name
ImmichSync(if enabled)
Push a tag like v1.0.0 and GitHub Actions will build and attach ZIP/DMG to a published release.
git tag v1.0.0
git push origin v1.0.0Issues and pull requests are welcome. If you plan a larger change, please open an issue first so we can align on scope and behavior.
MIT License.
