-
Notifications
You must be signed in to change notification settings - Fork 97
Features
The full feature list, section by section. Playback and downloads have their own pages: Playback and Codecs and Downloads.
A first-run wizard after sign-in asks how the app should look: the navbar position, the media bar style, the home row style, and the detail screen style.
- Every choice shows a live preview built from your own library artwork rather than a description
- It only asks about things it can't work out on its own, and skips anything you have already chosen
- The answers are saved as one batch at the end instead of one push per tap
One Flutter codebase spans phones, tablets, desktop, Android TV, Fire TV, Apple TV, and web.
- Navigation tuned for touch on mobile, pointer and keyboard on desktop and web, and D-pad and remote on TV
- Reworked Siri Remote glide navigation on Apple TV
- An optional gamepad navigation mode, off by default, so a connected controller can move focus and select items outside of games
- Play and Resume on the item long-press menu, so something can start without opening it first
- Settings search that finds screens and individual settings, shows where each result lives, and jumps straight to it
- Platform-specific build and release scripts for Android, Android TV, iOS, Apple TV, Linux, macOS, Windows (x64 and ARM64), and web
Ebooks: read EPUB, MOBI, AZW/AZW3, and PDF in the app. Comic archives (CBZ, CBR, CB7, CBT) render with a two-page spread on desktop, zoom and pan, and page caching. Reader themes include Light, Dark, and Sepia.
Audiobooks: play M4B and multi-file audiobooks with chapter navigation, position bookmarks, and resume tracking. Download whole audiobooks for offline listening.
Books and audiobooks always download in their original format, with no transcoding.
Browse and play retro game libraries hosted by the Moonbase server plugin, right inside the app. See Retro Games for setup, cores, and platform support.
- Native libretro playback on Android, desktop, iOS, and Apple TV, with an EmulatorJS web player as a fallback
- Gamepad, keyboard, on-screen touch, and Siri remote input, plus save states that sync across devices
- Controller remapping with a capture screen that reads your actual controller, on Android and desktop
- Arcade support through FBNeo, with the server matching ROMs against pinned FBNeo and MAME data files
- Native Google Cast, DLNA, and AirPlay integration
- Playback controls with track selection, delay adjustments, and picture-in-picture support
- Queue and next-up behavior that works across local and remote playback
Messages your admin sends through Moonbase arrive in a messages window rather than a dialog that blocks the app.
- An unread badge on the navigation, with a Mark all as read action
- Markdown is supported, and the order your admin set is kept
- Links inside a message are held to web addresses before they reach the system launcher
- The messages button is off by default and turned on under navigation settings
Manage your server without leaving the client.
- Views for settings, users, libraries, logs, devices, and analytics
- An Identify dialog for admins to match items to the correct metadata
- A local search field finds items inside a library without leaving it
- Quick Return jumps back to the top, through the back button on a controller or a floating button on desktop and mobile
- Group By options for Movie and TV libraries, including Decade, Genre, and Parental Rating
- Libraries can scroll horizontally instead of as a grid
Advanced: every sort and filter
- Sorts for Date Added, Date Episode Added, Premiere Date, Rating, Runtime, Critic Rating, Community Rating, Last Played, Play Count, Artist, Track Number, Genre, and Folders First. Each library only offers the sorts its items can answer.
- Filters for In Progress, Unreleased, Trailers, Extras, Theme Songs, Theme Videos, picture quality, DVD, Blu-ray and ISO sources, year ranges, audio language, and subtitle language, plus a Clear Filters button.
Connect to multiple Jellyfin and Emby servers at the same time, under one UI.
- The unified library view merges content from all servers, so you browse, search, and play without switching
- Libraries display as "Library Name (Server Name)" when multiple servers are active
- Continue Watching, Next Up, and Latest rows pull from every connected server
- Unified mode can be toggled on or off, independently per server type
- Every playlist type shows up, including music, audiobook, book, photo, and mixed playlists
- A Group by Type option with per-type filters in the library display settings
- Chapter markers work when playing from a playlist
- Playlists can resume where you left off and show watched state on their tracks
Rotating featured content on the home screen with rich backdrop presentation.
- Six layouts to choose from: Moonfin, MakD, Bookshelf, Gallery, Banner, and Aya
- Aya is a rounded hero with the title logo, an ambient background taken from the artwork, expanding focus, and slide transitions
- Can feature your Collections or trending and library content, with optional in-bar trailer previews
- Shows quick-glance metadata like ratings, genres, runtime, and overview
- OLED Mode renders true black backgrounds for deeper blacks on OLED screens
- A full theming system with a built-in Theme Store to browse and manage themes
- An in-browser theme editor for building and previewing themes, with sync back to the server plugin
- Navbar icon color cycling and a range of bundled themes, including Neon Pulse
- Cinema Mode pre-rolls and intros play before movies and TV episodes, and are excluded from progress reporting
- Skip intro and skip credits controls, with a skip action settable per media segment type
- Skip buttons can hide themselves automatically instead of sitting on screen for the whole segment
- SponsorBlock integration to skip sponsor and promo segments during trailer playback
Seerr lives inside the normal media details screen, so requesting something new feels the same as opening something you already have.
- Titles that aren't in your library open the same details screen, showing the Cast and Seerr tabs
- Continuing TV series can be requested again as new seasons arrive, and seasons you already have are marked
- Optional Seerr discovery rows on the home screen: Trending, Popular, Upcoming, Recently Added, and Requests
- Browse by Genres, Studios, and Networks, with request status overlays and media type badges
- HD and 4K requests can be made independently
- Your requests show as a poster grid on desktop and TV, with a progress bar for anything still downloading that reports real byte counts
- Seerr navigation and settings hide automatically when a Seerr instance isn't configured
Watch together in sync with other people on your server, with entry points in the app navigation and settings.
Rate an item as a like or dislike, out of five stars, or as a score out of ten. The style you pick is what the rest of the app speaks.
- Your rating shows in the ratings row on the detail screen alongside the other sources
- Libraries can be sorted by My Rating and filtered by liked or disliked, which the Moonbase plugin serves since neither server has that sort of its own
- A rating set while offline is queued and synced when you reconnect
- Works on Emby servers as well as Jellyfin
- Optional MDBList ratings with multiple rating sources shown in item details, including Roger Ebert
- Episode ratings routed through TMDB where available
- Rating display customizable through settings, with a reset button to restore the defaults
Trickplay previews show while scrubbing, as a single thumbnail, a filmstrip of the frames either side of where you are, or full screen.
- Preview size, distance from the seekbar, and whether the preview slides along with your scrub are all configurable, with a live preview in settings you can drag
- Frames are prefetched so scrubbing stops waiting on the network
- Works on Emby servers as well as Jellyfin, using the preview images the server already generates
- Built-in Live TV browsing and playback
- Embedded CEA-608/708 closed captions during Live TV on all platforms
- An EPG-style program guide
- DVR recordings and schedule management in-app
Play trailers right in the app from the detail screen, with resilient trailer source resolution for better reliability.
Six configurable slots around the progress bar, above and below it on the left, center, and right. Each slot shows time elapsed, time remaining, the wall clock time the item ends at, or nothing. The video and music players have separate layouts.
- Fine-grained subtitle and audio delay adjustment during playback
- Pre-playback track selection and ongoing track control
- Show, hide, and reorder player OSD buttons and details screen action buttons per device type, synced across devices
- Still-watching flow and next-up handling
- Reorder and toggle home sections, for example Continue Watching, Next Up, and Latest
- A Max Days in Next Up setting controls how far back Next Up reaches
- Home row preferences sync through the plugin
- A reset button restores the defaults
- PIN code protection for sensitive settings and actions
- Configurable content and rating restrictions
Crash reports are captured on the device and uploaded to your own server, never anywhere else. See Collecting Logs for how to capture a report.
Advanced: how capture works
- Reports are written at capture time, so a hard kill loses nothing, and they are held until a server that accepts them is reachable
- A switch in Diagnostics settings stops reports ever leaving the device, while capture itself stays local
- Playback diagnostics name who declined direct play, the device's video codec capabilities, and the subtitle track mapping
The app checks for updates on a configurable cadence and surfaces availability in-app, so you don't have to track versions yourself.