cairn — Immich sync

Sync photo deletions to Immich

Only for iPhone

Free · Designed for iPhone. Not verified for macOS.

iPhone

When you delete a photo on your iPhone, cairn moves the matching photo on your Immich server to Trash. Every run is a preview — nothing moves until you confirm. cairn reconciles your iPhone photo library against your own Immich server. When you delete a photo on your phone, cairn moves the matching photo on Immich to Trash. That's the whole job. cairn doesn't upload photos, show albums, edit metadata, or run AI — the Immich app already does those things. cairn closes the one loop the Immich app doesn't: photos that live on the server after you've deleted them from your phone. HOW IT WORKS — Content identity is SHA1 (the same identifier Immich uses server-side). — cairn subscribes to iOS's deletion log, so it sees soft-deletes as you make them. — A configurable quarantine window holds confirmed deletions before anything moves, so an accidental mass-offload has time to be caught. — Every run shows you the candidate list first. Nothing happens on the server until you confirm. SAFETY MODEL — Trash, not delete. cairn moves assets into your Immich Trash — Immich retains them for 30 days, and restore is one tap. — Percent cap + floor. If a single run would move more than a threshold of your matched photos to Trash, it aborts without touching the server. — Breadcrumbs. Every run is tagged on Immich (cairn/v1/run/[id]) so you can find it server-side. — Forensic journal. Local append-only log records every step — planned, tagged, trashed, restored, failed. — Exclusions. Protect specific photos from ever being flagged. — Indexing scope. Restrict cairn to a specific set of Photos albums. Photos outside the scope are silently ignored — never hashed, never proposed for trash. Useful if you want to manage just one album and leave synced family albums alone. PRIVACY — No analytics, no telemetry, no crash reporting, no ads. — No cairn backend. Your iPhone talks directly to your Immich server using your API key. — Credentials stay in the iOS Keychain. Nothing leaves your device besides requests you configured. REQUIREMENTS — An Immich server you run or control. — An Immich API key. cairn requests these scopes: asset.read, asset.view, asset.download, asset.delete, tag.create, tag.asset, tag.read. The Setup screen lists them when you paste your key. cairn is not affiliated with the Immich project. It talks to Immich over its public API; compatibility only. Source is MIT-licensed at github.com/glarue/cairn.

  • 5.0
    out of 5
    1 Ratings

Fixes trash requests that could get stuck permanently. If a trash run was interrupted partway through — server unreachable, connection dropped mid-sync, VPN down — the queued retry could wedge and report "A tag with that name already exists" on every attempt after that, and no amount of retrying could clear it. Every trash run writes a breadcrumb tag to Immich so the run can be reconstructed later, and cairn was creating those tags with an endpoint that rejects duplicates rather than the one that reuses an existing tag. Because a retry reuses its original run's tag, every attempt after the first was refused. Retries now reuse the run's existing tag instead of failing on it, and any request already stuck this way clears itself on the next sync after you update. Run breadcrumbs also nest properly under cairn / v1 / run in Immich's tag list now, instead of appearing as one flat entry.

The developer, Graham Larue, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy .

  • Data Not Collected

    The developer does not collect any data from this app.

    Privacy practices may vary, for example, based on the features you use or your age. Learn More

    The developer has not yet indicated which accessibility features this app supports. Learn More

    Seller
    Graham Larue
    Size
    8.8 MB
    Category
    Photo & Video
    Compatibility
    Requires iOS 17.0 or later.
    • iPhone
      Requires iOS 17.0 or later.
    • Mac
      Requires macOS 14.0 or later and a Mac with Apple M1 chip or later.
    • Apple Vision
      Requires visionOS 1.0 or later.
    Languages
    English
    Age Rating
    4+
    Copyright
    © 2026 Graham Larue