

Mimick
Like
Mimick is an unofficial Immich desktop client for Linux. It provides a GTK4/libadwaita interface for automatic background sync of local photo and video folders to a self-hosted Immich server, and an optional library browser for viewing, searching, and managing assets directly...
Cost / License
- Free
- Open Source (GPL-3.0)
Platforms
- Linux
- Flathub
- Flatpak
Features
Properties
- Privacy focused
- Customizable
Features
- OCR
- Watch Folder
- Ad-free
- Cloud Sync
- Dark Mode
- No Tracking
- Integrated Search
- Tray Icon
- Gtk
- Folder Sync
Mimick information
No comments or reviews, maybe you want to be first?
What is Mimick?
Mimick is an unofficial Immich desktop client for Linux. It provides a GTK4/libadwaita interface for automatic background sync of local photo and video folders to a self-hosted Immich server, and an optional library browser for viewing, searching, and managing assets directly from the desktop.
Sync Engine
- Asynchronous Concurrent Uploads: Configurable parallel worker tasks (1–10 streams) stream files from disk, maintaining flat memory usage footprints.
- SHA-1 Deduplication: Verifies files locally via checksum prior to upload, utilizing payload logic identical to official Immich mobile apps.
- Atomic File Monitoring: Delays queuing until file sizes stabilize and physical write locks are released, preventing partial data uploads.
- One-Way Mirroring: Maintains strictly read-only access to local system files.
Reliability & State Management
- Persistent Offline Storage: Upload network failures are safely serialized to disk (~/.cache/mimick/retries.json) and gracefully replayed during subsequent daemon lifecycles.
- Local State Indexing: Unmodified, previously uploaded media is aggressively skipped during startup catch-up scans using local indexes to minimize disk I/O overhead.
- Queue Inspector: Interactive UI module to interpret active error payloads, selectively retry specific dropped files, or flush the active failure queue.
- Dynamic Endpoint Resolution: Automatically negotiates requests between configured Internal (LAN) and External (WAN) URI addresses based on immediate network topologies and heartbeat reachability.
Environment & Desktop Integration
- Native Implementation: Developed purely in Rust, utilizing GTK4 and Libadwaita bindings alongside an AppIndicator system tray for headless daemon control.
- Hardware Awareness: Integrates with nmcli and /sys/class/power_supply to identify running states and optionally defer daemon I/O operations strictly during explicitly metered networks or active battery deployments.
- Sandbox Security: Employs Flatpak desktop portal file-choosers to grant the application isolated, per-directory access without requesting system-wide filesystem permissons.
- Encrypted Keystore: API keys are stored securely via the oo7 keyring library. Inside Flatpak, credentials are kept in a portal-encrypted file within the sandbox. On native installs, the desktop's Secret Service (GNOME Keyring, KWallet) is used.
- Quiet Hours: Configurable chronological barriers to globally suspend daemon uploads.
Directory Scoping & Filtering
Each watched directory operates with isolated logical constraints:
- Target Albums: Static or dynamically generated Immich album targets.
- Hidden File Omission: Pre-flight omission of hidden paths (dotfiles).
- Extension Allowances: Predetermined allowance lists strictly for explicit file extensions (e.g. .avif, .mp4).
- File Size Ceilings: Upper-bound maximum file size ceilings.




