Lymic is a high-performance, cross-platform desktop synchronization client for Immich. Effortlessly keep your local media library in sync with your personal Immich server β with a focus on speed, reliability, and a premium user experience.
- π High Performance: Intelligent, metadata-based hash caching skips redundant processing for massive libraries.
- β‘ Real-time Watcher: Instantly detects new or modified files in your watched folders and starts background synchronization.
- π¦ Large File Support: Optimized streaming uploads ensure that multi-gigabyte 4K videos are handled without high memory consumption.
- π¨ Premium UI: Clean, modern interface with real-time progress reporting and full system tray integration.
- π Secure: Credentials are safely stored in your system's native keyring (Keychain, Credential Manager, or Secret Service).
- π Smart Deduplication: Leverages Immich's bulk-upload-check API to verify assets before transmitting data.
- π Folder Management: Easily add or remove multiple watched folders from your local filesystem.
| Layer | Technology |
|---|---|
| Backend | Rust + Tauri v2 |
| Frontend | SvelteKit + TypeScript |
| Styling | Tailwind CSS v4 |
| Icons | Lucide |
| Database | SQLite via SQLx |
| Networking | Reqwest (HTTP / multipart streaming) |
The easiest way to get started is to download the latest installer for your operating system from the Releases page.
Important
macOS Users: Since this is an open-source project without a paid Apple Developer certificate, macOS will block the app as "unidentified" or "damaged".
Option 1 (Recommended):
- Drag the app into your Applications folder.
- Right-click (or Control-click) the app icon and select Open.
- Click Open in the confirmation dialog.
Option 2 (If Option 1 fails): If you still see the "App is damaged" message, run the following command in your terminal:
xattr -cr /Applications/Lymic.app- Rust (latest stable)
- Node.js (v18+)
- OS-specific dependencies (see Tauri prerequisites)
-
Clone the repository
git clone https://github.com/xXRoxXeRXx/lymic.git cd lymic -
Install dependencies
npm install
-
Run in development mode
npm run tauri dev
-
Build for production
npm run tauri build
To use Lymic, generate an API Key in your Immich web interface under Account Settings β API Keys.
| Scope | Purpose |
|---|---|
asset.upload |
Transmit new media files to the server |
asset.read |
Verify whether a file already exists before uploading |
server_info.read |
Validate the connection and check server compatibility |
Tip
Lymic adheres to the principle of least privilege. It currently does not require asset.delete or album.write permissions unless you are using specific experimental features.
- Scan β The app scans your watched folders for media files (
jpg,mp4,heic, etc.). - Hash β A SHA-1 hash is calculated for each file. Results are cached in a local SQLite database alongside file metadata (mtime/size) so unchanged files are never re-hashed.
- Verify β Before uploading, Lymic checks the Immich server in chunks of 500 to determine which assets already exist.
- Stream β Missing assets are streamed directly from disk to the API, keeping memory usage low even for large video files.
Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.
Lymic is an unofficial community project and is not affiliated with, maintained, or endorsed by the official Immich team. Use it at your own risk. Always keep backups of your precious media.
This project is licensed under the MIT License.
Made with β€οΈ for the Immich Community