Skip to content

Releases: matthw-labs/cupola

v1.0.0-beta.1

Choose a tag to compare

@github-actions github-actions released this 02 Nov 15:55

Cupola is the new name of Seekarr, and 1.0 is a different app. It covers seventeen services where Seekarr covered five: Seerr, Radarr, Sonarr, Lidarr, Readarr, Bazarr, qBittorrent, Transmission, SABnzbd, NZBGet, Prowlarr, Jellyfin, Plex, TrueNAS, Unraid, Dockge and Nginx Proxy Manager. It runs on iPhone, iPad, Android and Mac, and it talks straight to the services you run: there is no Cupola server, no account and no telemetry of ours. On Android, the code scanner is Google's and reports usage to Google (see privacy below).

This is a beta. Everything below is built, and we run it on our own stacks every day, but it has not met many other people's servers yet. Tell us where it falls short.

Coming from Seekarr? Read this first

Cupola is a new app, not an update to Seekarr 0.8.0.

  • It installs beside Seekarr. The Android package changed from labs.matthw.seekarr to com.matthwlabs.cupola, and the Apple bundle ids changed too, so no system offers Cupola as an update.
  • It starts empty. Your connections stay in Seekarr. Add your services again in Cupola (same addresses, same API keys), check that each one answers, then uninstall Seekarr. Once one device is set up, Settings → Security → Set up another device copies every connection to the next one.
  • Obtainium: your Seekarr entry may offer Cupola and then refuse it, because the app ID changed. Remove that entry and add this repository as a new app.
  • iPhone and iPad install through TestFlight now. The unsigned .ipa is still here for sideloading, but TestFlight is the way we recommend.
  • The minimums went up: Android 7.0 (Seekarr ran on 6.0), iOS 17, and macOS 12 on an Apple silicon Mac (Seekarr's Mac build also ran on Intel Macs and on macOS 10.15).
  • New license: Cupola is released under Apache 2.0. Seekarr 0.8.0 and everything before it stay under MIT, as NOTICE explains.

The source, the issues and the history stay in this repository.

Install

Platform Get it Needs
iPhone, iPad TestFlight iOS 17
iPhone, iPad (sideload) cupola-1.0.0-beta.1.ipa below, unsigned: install it with AltStore, SideStore or Sideloadly iOS 17
Android cupola-1.0.0-beta.1.apk below, or Obtainium with this repository's URL Android 7.0
Mac cupola-1.0.0-beta.1.dmg below: signed with a Developer ID and notarized, so it opens like any other app macOS 12, Apple silicon
Windows cupola-1.0.0-beta.1-windows-x64.zip below: unzip it and run cupola.exe 64-bit Windows
Linux cupola-1.0.0-beta.1-linux-x64.tar.gz below: untar it and run cupola x64, GTK 3 and libsecret
  • TestFlight asks you to install Apple's TestFlight app, then installs Cupola and brings each new build on its own. The public link has 500 places: if it says the beta is full, try again after the next release. The same link works on a Mac, if you would rather get updates that way than from the .dmg.
  • Sideloading the .ipa: you sign it yourself with your sideloading tool. With a free Apple ID the install lasts 7 days and has to be refreshed, and the widgets may stay empty, because they share data through an App Group that a re-signed copy may not get.
  • Android: one APK covers every device. You may need to allow installs from unknown sources for your browser or file manager.
  • Windows and Linux builds are made by GitHub Actions and are not signed, so SmartScreen asks once. We have not run them ourselves: a report either way helps.

What is new since 0.8.0

Seekarr 0.8.0 had five services and four tabs. Almost every screen in Cupola is new, so here it is by area: each line opens.

Home: what arrived, what comes out next, what you were halfway through and what needs you, on one page
  • Home is the first tab. Its title is the day, and the line under it says how many of your services are answering. Tap that line for the Stack.
  • It is made of modules. By default: Needs you, Featured (what to resume, the newest arrival, what comes out today), Continue watching (Jellyfin or Plex), Coming up, Arrived (the last seven days), Downloads, Requests (approve or decline in the row), Now playing and Set up next.
  • Three more wait in Edit Home: Stack health, Storage (TrueNAS pools and the Unraid array, with any disk in trouble) and a Discover shelf.
  • Edit Home, from the foot of Home or Settings → Home: drag a module or use the arrows, switch one off, or reset the layout. Screen readers get Move up and Move down.
  • A stuck download on Home carries its remedy in the row: look for peers again, try another download, keep waiting.
  • At a cold start Home draws what it last knew, marked "As of 20:53 · checking now", then refreshes. Downloads and Now playing stay live while you look.
  • Set up next names what you have not connected yet and offers the servers your Seerr or Prowlarr already know, filled in.
  • Wide windows lay the modules out in two columns.
Discover and the title page: find something to watch, see where it stands on your server, act on it
  • Discover replaces the Search tab. One field searches Seerr, Radarr, Sonarr, Jellyfin and Plex together and folds each title into one row that says where it is: on your server, in Radarr, requested. People get their own section. A source that is slow or down says so, instead of looking like "no results".
  • Every way in: Trending (today or this week), Genres, Networks, Studios, People, Decades, Moods and Languages. Each opens a catalog you can switch between movies and series, order by popular, top rated or newest, and narrow by decade, rating or runtime. Hide what I have leaves out what is already on your server.
  • Shelves: The best you're missing, Trending this week, Coming soon, Because you watched (from your Jellyfin or Plex history) and Complete the collection.
  • A calendar of everything your Radarr, Sonarr, Lidarr and Readarr date in the next 30 days, across all your connections, with premieres and finales marked, and a month grid on wide windows.
  • Person pages (biography, work grouped by role, how much of it is on your server) and collection pages (each movie and where it stands; request or add the missing ones).
  • A poster's corner says what Seerr holds: Available, Requested, Downloading 42%. Long press or right click a poster to request it, add it, open it in Radarr or Sonarr, or copy its TMDB link.
  • One page per title, the same from every way in, replacing 0.8's separate Seerr and library pages. Scores from TMDB, IMDb, Rotten Tomatoes and Metacritic (never from a handful of votes), 4K, HDR and Dolby Vision marks, where to watch, release dates, cast, More like this, a watchlist button, and one row per connection that holds the title or could.
  • One lead button that fits the title: Play or Resume on Jellyfin or Plex (on a phone, pick Swiftfin, Streamyfin or Fladder), Request, Add to Radarr or Sonarr, Trailer. A copy that needs attention gets its own panel: try another download, remove the download, finish the import, search again.
  • Requesting: Standard or 4K, the seasons you want, your remaining quota, and a plain reason when a request cannot go through. Operators choose the server, profile and root folder, and can add straight to Radarr or Sonarr instead of going through Seerr (Settings → Seerr → Adding a title).
  • Series: episodes by season with each one's state, Search the N missing per season, the next airing, an episode sheet (play, file and quality, choose a release, monitoring, subtitles) and a graph of TMDB votes per episode.
  • Manage (operators): files and quality, history, subtitles from Bazarr, automatic search for a series or a season, search releases, and remove with a clear say over the files and whether the title can come back.
Activity: what went wrong in plain words, and one list for every download
  • Activity is four views (All, Downloads, Requests, History) under a header such as "4 moving · 40.4 MB/s · 1 stuck".
  • Needs you gathers what the stack cannot fix by itself. Each card says what happened in the app's words, keeps the service's own message one tap away, and leads with the remedy:
    • a download with nothing arriving for 30 minutes: look for peers again, try another download, remove it, or keep waiting (it stays out of the counts for 24 hours unless it moves, with Undo);
    • a failed download, or a Usenet job stopped by a password, a damaged file or a full disk;
    • downloads the arr will not import: Review sorts each one's files into clear matches and the ones that need you;
    • a failed import (Fix opens manual import), a disk reporting errors (scrub the pool, with live progress), TrueNAS and Unraid alerts;
    • a refused key or gateway, an arr health check at error level, a failing indexer (Test), a certificate about to expire (Renew);
    • requests waiting for approval, in blue and counted apart from faults.
  • One list of downloads from qBittorrent, Transmission, SABnzbd, NZBGet and the arrs, each joined to the title it belongs to: moving first, stuck next, with its route ("Radarr → qBittorrent") and who asked for it.
  • A page per download: progress, pace ("ready around 21:10"), a live speed trace, the steps from grabbed to on Jellyfin or Plex, Stop, Resume and Remove.
  • Requests: waiting ones first, with Approve and Decline. Approve lets you choose the server, profile and root folder.
  • History: the last seven days of imports and failures, by day. The blocklist is one page for every arr, and entries can now be removed from it.
  • The per-service Queue, Wanted and History that 0.8 kept in Activity are now tabs of each service.
<...
Read more

seekarr-v.0.8.0

Choose a tag to compare

@matthw-labs matthw-labs released this 20 Jun 12:39

v0.8.0

📅 Released June 20, 2026

🎉 New Services

qBittorrent

Full qBittorrent support lands in Seekarr — the headline feature of this release.

  • 🧲 Torrent management: list, detail view, and full lifecycle control (start/pause/delete/edit)
  • 🧱 New domain models: Torrent, TorrentFile, TorrentTracker, TorrentProperties, TransferInfo with dedicated parsers
  • ⚡ Torrent actions: start/pause, delete with confirmation dialog, edit dialogs, action & selection bars
  • ➕ Add torrent button with manual import support
  • 🔖 Filters: new three-pill popup for Categories, Tags, and Trackers
  • ↕️ Sorting: new sort options for the torrent list
  • 🔎 In-list search: filter and sort rows polished with design tokens
  • 🌐 WebUI v2 client: form-based login, cookies, Referer/Origin headers

🔜 COMING SOON: Bazaarr

Manual Import

  • 🛠️ Lenient ManualImport endpoint for unparseable files, with a fix sheet to correct failed imports

✨ UX & UI Improvements

  • 🖥️ Phone-like macOS window: compact new window style on macOS
  • ♻️ In-app reset: reset settings directly from the Settings screen
  • 🚀 Onboarding: flow fixes and screen improvements
  • 📸 Screenshot refresh: entirely renewed README gallery (light/dark shots for activity, search, services, settings, qbit, radarr, sonarr, seerr, manual_import)

🐛 Fixes

  • 🔍 Global search results now open correctly
  • 🧹 qBittorrent UI and filter fixes
  • 🤖 Android: fixed build error caused by file_picker dependency
  • 🍎 iOS: fixed Podfile for iOS builds
  • 📝 Minor onboarding flow fixes

♻️ Refactor

  • 🧩 New runTorrentAction utility centralizes torrent action handling — torrent_detail_screen.dart significantly slimmed down
  • 🎨 Filter/sort rows migrated to design tokens (AppSpacing)

🧪 Tests

  • 📈 +2600 lines of qBittorrent tests: client, service, models, provider
  • 📦 Manual import: service, models, and provider tests
  • ⚙️ Settings & onboarding: settings_service, settings_home_screen, onboarding_screen tests
  • 🔎 Extended global search tests
  • 🧰 New FakeSecureSettingsStore test helper for persistence tests

Full Changelog: v0.7.0...v0.8.0

seekarr-v.0.7.0

Choose a tag to compare

@matthw-labs matthw-labs released this 18 May 20:52

What's Changed

App Redesign

Seekarr has been completely redesigned from the ground up — new navigation
structure, refreshed visual language, and a faster, more intuitive layout
across every screen.

New: Manual Import

Full manual-import workflow for Radarr, Sonarr, and Lidarr — accessible from
any media detail screen:

  • Browse your file system and select unmatched files
  • Match files to movies, series episodes, or albums
  • Fix mismatched imports individually or in bulk
  • Real-time progress screen with per-file import results

New: Services Dashboard

The Services tab is now a full home screen for your *arr stack:

  • Status grid — at-a-glance online/offline health for every configured service
  • Trending — surface popular content from Seerr directly on the dashboard
  • Recent Requests — latest requests submitted through Seerr
  • Recently Added — newly imported movies and series
  • Downloading — active download queue across all services
  • Pull-to-refresh, and a friendly empty state when no services are configured yet

New: Global Search

A dedicated Search tab lets you search across Radarr, Sonarr, and Lidarr
simultaneously. Filter results by service with a single tap.

New: Onboarding Flow

First-time users are now guided through a step-by-step setup wizard to
configure their services before entering the app. Includes live connection
testing inline during setup.

New: Activity Screen

A unified Activity view consolidates download queue, history, wanted items,
and cutoff mismatches across all services in one place.

Improved: Media Detail Screens

Movies, series, and artist detail screens received a visual refresh:

  • New hero summary layout with improved typography
  • Cleaner actions layout with better collapse behaviour on scroll
  • Detail sheets for queue/history entries redesigned

New App Icon

Seekarr has a new icon — updated across Android (with adaptive icon support),
iOS, and macOS.

Support the Project

In-app donation support added.

Dependencies

  • flutter_secure_storage upgraded to 10.x
  • in_app_purchase added

Full Changelog: v0.6.0...v0.7.0

seekarr-v.0.6.0

Choose a tag to compare

@matthw-labs matthw-labs released this 05 May 13:29

What's Changed

Renamed: Jellyseerr → Seerr

The service formerly known as "Jellyseerr" is now called Seerr throughout
the app. Existing saved settings are automatically migrated — no manual
re-configuration needed.

New: Service Connection Status

The Settings screen now shows a live connection indicator next to each
configured service. A cloud icon lets you see at a glance whether the service
is reachable before navigating into it.

Improved: Action Buttons Redesign

The Request and Manage buttons on detail screens have been upgraded to
filled buttons with a subtle glow effect, giving them stronger visual
prominence on the poster header.

Improved: StatusBadge – Partial Availability

  • Series and artists now display a "Partial" badge when some (but not all)
    episodes/albums are available locally.
  • Detail-header badges use a new translucent scrim treatment for a cleaner,
    less intrusive look while still conveying status.

Improved: Bundled Inter Font

Removed the google_fonts dependency. The Inter font is now bundled locally,
eliminating a network request at startup and making the app fully functional
offline from the first launch.

Fixed: Material 3 Settings Interactions

Settings list cards now respond correctly to taps with proper Material 3
ripple and pressed-state feedback.

Fixed: iOS & macOS Signing

Resolved code-signing configuration issues affecting iOS and macOS builds.

seekarr-v0.5.0

Choose a tag to compare

@matthw-labs matthw-labs released this 07 Apr 12:53
changed screenshot