Skip to content

LavaToaster/immich-lens

Repository files navigation

ImmichLens banner

ImmichLens

A native SwiftUI app for viewing your photos and videos on an Immich server.
Primarily built for Apple TV, with macOS support.

Join TestFlight Beta macOS 26.0+ tvOS 26.0+ SwiftUI


Important

ImmichLens is an independent project and is not affiliated with or endorsed by the Immich team.

Goal

ImmichLens is not a full Immich client — it's a lens into your library. The focus is on providing a native, Apple-like viewing experience rather than 1-to-1 feature parity.

Install

Apple TV (tvOS) — Install via TestFlight. Open the link on your iPhone or iPad signed into the same Apple Account as your Apple TV, then accept the invite — the app will appear on your Apple TV automatically.

macOS — Download the latest .dmg from GitHub Releases.

Screenshots

tvOS

Photos Explore

People Albums

Favourites

macOS

Photos Explore

People Settings

Albums Favourites

Features

  • Photo & Video Timeline — Browse your entire library in a responsive grid with time-bucket pagination
  • Explore — Discover your library through recognized people and places
  • Albums — View and browse your Immich albums
  • Favourites — Quick access to your starred photos and videos
  • Full-Screen Viewer — Swipe through photos and play videos natively
  • Secure Authentication — Connect to your Immich server with credentials stored in Keychain

Development

API Client

The API client is auto-generated from the Immich OpenAPI spec using swift-openapi-generator as part of the Xcode build process.

VS Code Setup

If you prefer VS Code over Xcode for development:

  1. Install the Xcode build server:
    brew install xcode-build-server
    
  2. Install VS Code extensions: Swift and SweetPad
  3. Run SweetPad: Generate Build Server Config from the command palette
  4. Run SweetPad: Start Build Server from the command palette

More on SweetPad: docs | autocomplete setup

Attribution

The tab-switch navigation fix (recreating NavigationStack on reactivation to work around a SwiftUI .sidebarAdaptable bug) was inspired by ShelfPlayer's NavigationStackWrapper pattern.

About

Native SwiftUI app for viewing photos and videos on an Immich server (macOS & tvOS)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors