The ultimate macOS companion app for Immich — monitor, manage, and optimize your photo server's job queues in real-time.
Running an Immich server means managing thousands of background jobs — thumbnail generation, video transcoding, face recognition, smart search indexing, and more. Without visibility into these queues, you're flying blind.
Immich Job Queue Visualizer gives you complete control:
- See everything — Real-time dashboard shows exactly what's happening across all 17 queue types
- Act instantly — Pause, resume, retry, or clear jobs with a single click
- Understand trends — Historical analytics reveal bottlenecks and performance patterns
- Stay informed — Menu bar integration keeps you updated without interrupting your workflow
- Debug faster — Full error details and stack traces for failed jobs
Built natively in Swift for macOS, it's fast, lightweight, and feels right at home on your Mac.
Real-time overview of all job queues with live statistics, processing rates, and quick action buttons.
Deep dive into any queue — filter, search, and manage individual jobs with detailed progress tracking.
Understand your server's performance with historical trends, processing time analysis, and outlier detection.
Monitor system health including API latency, connection status, and server configuration details.
Track and retry failed jobs with complete error information, stack traces, and asset metadata.
Simple configuration — just enter your server URL and API key to get started.
- Live Statistics — Active jobs, queued count, completed today, and failed jobs at a glance
- Processing Rate Graph — Visualize jobs/minute over time with Swift Charts
- Quick Actions — Pause All, Resume All, Clear Completed, Retry Failed with one click
- Auto-Refresh — Configurable polling interval from 1-30 seconds
- Menu Bar Mode — Quick access without opening the full window
Monitor and control all 17 Immich queue types:
- Thumbnail Generation
- Metadata Extraction
- Video Conversion
- Smart Search Indexing
- Face Detection & Recognition
- Duplicate Detection
- Sidecar Processing
- Library Management
- Storage & Migration
- Notifications
- And more...
Powerful Controls:
- Filter by job status (active, waiting, paused, completed, failed)
- Search across all jobs
- Batch operations on multiple jobs
- Detailed job information with progress tracking
- Time Range Analysis — View trends over 24 hours, 7 days, or 30 days
- Performance Profiling — Identify slow queues and file types
- Job Timeline — Visualize processing patterns throughout the day
- Outlier Detection — Spot unusually slow jobs that may indicate problems
- Completion Estimates — Predict when large batches will finish
- Connection Monitoring — API latency and server response times
- Configuration Display — Server URL and connection status
- Health Indicators — Visual status for all monitored systems
- Real-Time Logs — Filter and search through recent activity
- Complete Error History — Full stack traces and error messages
- Asset Information — File paths, EXIF data, and metadata
- One-Click Retry — Requeue failed jobs individually or in bulk
- Persistent Records — History survives even after clearing queues
- SQLite Storage — Historical metrics stored locally for offline access
- Automatic Cleanup — Configurable data retention policies
- Database Tools — Vacuum and optimize your local database
-
Get the latest release:
- Download from Releases
- Look for
ImmichJobQueueVisualizer.dmg
-
Install the app:
- Open the DMG file
- Drag Immich Job Queue Visualizer to your Applications folder
-
First Launch — Important!
Note: This app is code-signed but not notarized with Apple (which requires a paid developer account). macOS Gatekeeper will show a warning on first launch. This is normal for open-source Mac apps.
To open the app:
- Try to open the app normally — macOS will block it
- Open System Settings → Privacy & Security
- Scroll down to find the security message about the blocked app
- Click "Open Anyway"
- Click "Open" in the confirmation dialog
You only need to do this once. After that, the app opens normally.
-
Configure:
- Launch the app
- Press
Cmd+,to open Settings - Enter your Immich server URL (e.g.,
http://192.168.1.100:2283) - Paste your API key
- Click Test Connection then Save Settings
Click to expand developer instructions
Requirements:
- macOS 13.0 or later
- Xcode 15+ or Swift 5.9+
Steps:
# Clone the repository
git clone https://github.com/bytePatrol/Immich-Job-Visualizer.git
cd Immich-Job-Visualizer
# Build the application
./Scripts/build.sh
# Create the .app bundle
./Scripts/create-app.sh
# (Optional) Create a DMG installer
./Scripts/create-dmg.sh
# Install to Applications
cp -r "Immich Job Queue Visualizer.app" /Applications/- Open your Immich web interface
- Click your profile icon → Account Settings
- Navigate to API Keys
- Click New API Key
- Name it "Queue Visualizer" and click Create
- Copy the key immediately (it won't be shown again)
| Shortcut | Action |
|---|---|
Cmd+1 |
Dashboard |
Cmd+2 |
Queue Management |
Cmd+3 |
Analytics & Insights |
Cmd+4 |
Diagnostics |
Cmd+5 |
Failed Jobs |
Cmd+, |
Settings |
Cmd+Shift+P |
Pause All Jobs |
Cmd+Shift+R |
Resume All Jobs |
Cmd+Shift+F |
Retry Failed Jobs |
Cmd+Shift+K |
Clear Completed Jobs |
- macOS 13.0 (Ventura) or later
- Apple Silicon or Intel Mac
- Network access to your Immich server
- Language: Swift 5.9
- UI Framework: SwiftUI
- Charts: Swift Charts
- Networking: URLSession with async/await
- Database: SQLite via SQLite.swift
- State Management: Combine framework
- Settings:
~/Library/Preferences/com.immich.queuevisualizer.plist - Metrics Database:
~/Library/Application Support/ImmichJobQueueVisualizer/metrics.db
GET /api/server/ping— Connection testGET /api/jobs— Fetch queue informationPUT /api/jobs/{queueName}— Pause/resume queuesPOST /api/jobs/{queueName}/{command}— Job commands
Contributions are welcome! Whether it's bug fixes, new features, or documentation improvements.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- WebSocket support for instant updates (no polling)
- iOS companion app
- Multi-server monitoring
- Prometheus metrics exporter
- Slack/Discord notifications
- Smart scheduling rules
- Worker tuning recommendations
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Immich Community: Discord / Reddit
This project is licensed under the MIT License — see the LICENSE file for details.
- Immich — The amazing self-hosted photo solution this app was built for
- SQLite.swift — Elegant SQLite wrapper for Swift
- SF Symbols — Beautiful icons from Apple
This is an independent, community-built project. It is not officially affiliated with or endorsed by the Immich project.
Built with care for the Immich community
If you find this useful, consider giving it a star!





