A native Apple TV app for browsing your self-hosted Immich photo library with a beautiful, TV-optimized interface.
- πΌοΈ Photo Grid View: Browse all your photos in a responsive grid layout with infinite scrolling
- π₯ People Recognition: View and browse photos by people detected in your library
- π Album Support: View and navigate through your Immich albums
- π·οΈ Tag Support with animated thubnails: Browse photos by tags (optional, configurable)
- π¬ Slideshow Mode: Full-screen slideshow with optional clock overlay
- π€ Multi-User Support: Multiple user accounts with easy switching
- π EXIF Data: View detailed photo metadata including camera settings and location
- π Privacy First: Self-hosted solution with secure credential storage, no data sent to third parties


Untitled720p.mov





- Apple TV (4th generation or later)
- tvOS 15.0+
- Immich server running and accessible
- Network connectivity between Apple TV and Immich server
- Launch the app - You'll be prompted to sign in to your Immich server
- Enter server details - Server URL (e.g.,
https://your-immich-server.com
), email, and password - Browse your photos - Navigate using the Apple TV remote or Siri Remote
Immich Gallery/
βββ Models/
β βββ ImmichModels.swift # Data models for Immich API responses
βββ Services/
β βββ AuthenticationService.swift # User authentication and session management
β βββ NetworkService.swift # Core HTTP networking layer
β βββ AssetService.swift # Photo/video asset management
β βββ AlbumService.swift # Album data handling
β βββ PeopleService.swift # People recognition integration
β βββ TagService.swift # Tag-based photo organization
β βββ ThumbnailCache.swift # Efficient image caching system
βββ Views/
β βββ AssetGridView.swift # Main photo grid interface
β βββ FullScreenImageView.swift # Full-screen photo viewer
β βββ SlideshowView.swift # Slideshow functionality
β βββ Settings/ # Configuration interfaces
βββ Extensions/
β βββ DateFormatter+Extensions.swift
βββ ContentView.swift # Main app coordinator
- SwiftUI: Modern declarative UI framework
- Async/Await: Modern Swift concurrency for network operations
- URLSession: HTTP networking with custom authentication
- UserDefaults: Secure credential storage with encryption
- Core Image: Image processing and thumbnail generation
- AVKit: Video playback support
- Immich REST API: Full integration with Immich server endpoints
- Authentication: Bearer token-based authentication with automatic refresh
- Caching Strategy: Multi-layer caching for thumbnails and metadata
- Error Handling: Comprehensive error boundaries and retry mechanisms
- Lazy Loading: Photos loaded on-demand as user scrolls
- Thumbnail Caching: Persistent cache with configurable size limits
- Memory Management: Efficient image loading with automatic cleanup
- Background Processing: Non-blocking API calls for smooth UI
- Credential Encryption: Secure storage of server credentials
- HTTPS Support: Encrypted communication with Immich server
- Token Validation: Automatic token refresh and validation
- No Telemetry: No data collection or external service communication
- Default Tab: Customizable startup tab (Photos, Albums, People, Tags)
- Slideshow Settings: Configurable timing and overlay options
- Cache Management: User-controlled cache size and cleanup
- Multi-User: Support for multiple Immich accounts
- Clone the repository
- Open
Immich Gallery.xcodeproj
in Xcode - Select Apple TV target device
- Build and run
This project uses only system frameworks and has no external dependencies.
- Verify server URL includes protocol (
http://
orhttps://
) - Ensure Immich server is accessible from Apple TV network
- Check firewall settings and port configuration
- Monitor cache usage in Settings > Cache Management
- Clear cached data if storage is full
- Ensure stable network connection for optimal loading