Projects
Theme

Mimick

A native Linux desktop client for Immich — background folder sync, queue diagnostics, OCR search and a tucked-away tray, written in Rust.

Now on Flathub  ·  Stable  ·  Linux
Rust edition 2024 GTK4 libadwaita Linux native Immich v1.118+ License GPL v3
Built for self-hosters

Drop a folder. Walk away.

Mimick watches the folders you choose and quietly uploads new photos and videos to your Immich server — with the retries, dedup checks and connectivity smarts you'd expect from the official mobile apps.

Background sync, end to end

1–10 parallel upload workers stream files from disk with a flat memory footprint. SHA-1 checks dedup against what's already on the server before a single byte goes over the wire.

Survives reboots, drops, and flights

Failed uploads serialize to disk and replay on the next launch. A local sync index means restarts don't trigger a full rescan of your library.

OCR & smart search

Search by filename, description, or text Immich's ML pipeline has read out of your images.

In-app library browser

Photos, Explore (people & places), Albums and a full-screen lightbox — without ever opening a browser tab.

Power & network aware

Pause uploads on metered connections or battery automatically — and set Quiet Hours for the rest.

Native Linux, not a wrapper

GTK4 + libadwaita widgets with an AppIndicator tray for headless control. The UI adapts down to sub-360px for mobile Linux too.

LAN & WAN, auto-routed

Configure both an Internal and External URL — Mimick picks the reachable one based on live network topology and heartbeat checks.

Keys stay in your keyring

API keys land in the desktop Secret Service (GNOME Keyring, KWallet) — or a portal-encrypted file inside the Flatpak sandbox.

110
Parallel workers
SHA-1
Dedup, like the mobile app
5
Watch folders, per-rule
v1.118+
Immich compatibility
Under the hood

The quiet, useful details.

The bits that make Mimick a daemon you forget you have running — until it’s the thing that saved your library.

01

Atomic file monitoring

Mimick waits for write locks to release and file sizes to stabilize before queuing — so a still-encoding video never gets uploaded half-finished.

02

Live-apply settings

Worker count, quiet hours, folder rules and album targets all take effect the moment you change them. No restart, no daemon reload.

03

Catch-up, not crawl

A local sync index keeps a hash of what’s already on the server. Restarts skip the known-good files and only scan what changed.

04

One-click diagnostics

Export a redacted support bundle — summary.txt, config, status, retries, sync index and a privacy note — straight from the Status pane.

05

Notifications, not noise

Uploads aggregate into a single batch toast per sync cycle. Connection drops still ping you separately so you actually notice them.

06

Signed & verifiable

Flatpak repository metadata is signed, GitHub releases ship with checksums, and every commit runs through CodeQL plus lint, test and audit checks.

07

Selected-folder sandbox

Flatpak builds use the desktop portal to request access to only the folders you pick — never your whole ~.

08

Built for tiny screens

The whole UI reflows below 360 px wide. Runs cleanly on phone-form Linux too — Phosh, Plasma Mobile, take your pick.

09

Quiet hours

Set a nightly window in your local clock and Mimick globally suspends uploads — perfect for shared networks or laptop fans you’d rather sleep through.

In-app library

Browse your whole library, in-app.

Photos timeline, Explore for people & places, Albums, multi-select, lightbox — all rendered natively, no browser tab needed.

Settings & control

Quiet knobs for noisy networks.

Connectivity, behavior, library, watch folders, per-folder rules, status — everything you need behind one window, plus a tray for headless control.

Install

Two clicks. Any distro.

Mimick is published on Flathub. Pick the one-click flow or paste the CLI snippet — both arrive at the same place.

One-click

Open in GNOME Software, KDE Discover, or your distro's app center. Flathub handles the repo + install.

GET IT ON Flathub
Flathub install count Flathub version

Command line

For headless installs or scripted setups. Make sure the Flathub remote is configured.

$ flatpak install flathub dev.nicx.mimick
$ flatpak run dev.nicx.mimick
$ flatpak update dev.nicx.mimick