{"success":true,"count":4,"language":"en","data":[{"name":"Doudou","slug":"doudou","bundleIdentifier":"doudou","applicationId":"gitlab.openlyst.doudou","subtitle":"Music player for self-hosted services","localizedDescription":"Doudou is a music player for self-hosted libraries. Connect Jellyfin, Plex, or Navidrome and listen from your own servers.","iconURL":"https://gitlab.com/Openlyst/doudou/-/raw/main/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png?ref_type=heads","tintColor":"#8b5cf6","platforms":["iOS","macOS","Windows","Linux","Android"],"screenshots":["https://gitlab.com/Openlyst/doudou/-/raw/main/images/home.png?ref_type=heads","https://gitlab.com/Openlyst/doudou/-/raw/main/images/albums.png?ref_type=heads","https://gitlab.com/Openlyst/doudou/-/raw/main/images/nowplaying.png?ref_type=heads"],"deprecated":false,"versions":[{"version":"20.0.0","buildVersion":"20.0.0","buildNumber":"120","releaseTag":"build-120","sourceCommit":"0e4652b9f09b9b7848cfe0cc4b62e821c202aaaa","date":"2026-06-19","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/0e4652b9f09b9b7848cfe0cc4b62e821c202aaaa","platforms":["iOS","macOS","Linux","Android","Windows"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19.apk","aab":"https://github.com/openlyst/builds/releases/download/build-120/doudou-20.0.0-2026-06-19.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-124/doudou-20.0.0-2026-06-20-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-124/doudou-20.0.0-2026-06-20-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""}},"localizedDescription":"# 20.0.0\n\n## Added\n- Confirmation dialog before deleting a server.\n- Protocol dropdown (HTTPS/HTTP) when adding or editing a server, defaulting to HTTPS.\n- Server URL input now automatically strips existing protocol prefixes.\n- \"Your favorites\" track row section on the home screen for all providers.\n- App icon displayed next to the app name in the App Info settings section.\n- Heart button in the mobile mini player to quickly favorite/unfavorite the current song.\n- `PLAYSTORE` compile flag that directs the update dialog download button to the Google Play Store instead of the website when building Android releases.\n- `NoOpBackend` stub to gracefully handle the app when no media server is configured.\n- Hidden easter egg to unlock the YouTube Music provider on Play Store builds (long-press the app icon in Settings → App Info).\n\n## Changed\n- Removed sliding transition animations when switching between main tabs and content pages for a snappier experience.\n- Redesigned bottom navigation bar with a cleaner, more compact custom design and integrated mini player.\n- Mobile mini player is now a full-width flat bar instead of a floating pill, with reduced height and smaller album art.\n- Now playing screen no longer auto-opens on mobile when pressing play, matching desktop behavior.\n- Theme mode selector changed from dialog to dropdown with custom styling.\n- All dropdowns redesigned with custom icons, colors, and rounded corners.\n- Removed redundant \"Active\" badge from Servers settings and desktop two-pane selected section indicator.\n- Favourites quick action card hidden when user has zero favorites.\n- Replaced \"Shuffle all\" quick action with \"Start radio\" for YouTube Music servers.\n- YouTube Music users now see a hybrid home feed combining personalized local sections and YouTube Music content.\n- Default synced lyrics highlight style changed to karaoke.\n- \"Random\" removed from radio labels to avoid implying random song selection.\n- CI pipeline made manual to reduce costs.\n- Removed redundant YouTube Music add server dialog since it does not require login credentials.\n- Removed the compact short desktop mini player state that appeared before the mobile shell took over.\n- YouTube Music is hidden from the \"Add Server\" provider picker when building with `PLAYSTORE=true`.\n- Fresh installs no longer create a default YouTube Music server when building with `PLAYSTORE=true`.\n\n## Fixed\n- Status bar overlap on mobile.\n- Settings screen layout not extending full height in two-pane view.\n- Theme switching properly updates all UI providers.\n- ListTile rendering and ink splash issues.\n- UI unresponsiveness caused by improper reactive widget nesting.\n- Bottom navbar not navigating away when on settings sub-pages on mobile.\n- Settings header alignment on mobile.\n- Back button visibility in light mode.\n- Now playing bottom bar icon visibility in light mode.\n- Home screen quick action card borders not visible in light mode.\n- Search bar background and border colors in light mode.\n- Switch/toggle \"on\" state visibility in light mode.\n- Home screen favorite count not updating reactively.\n- Incorrect \"Your library is empty\" message showing when library sections exist.\n- Radio seeding from a random favorited song instead of a fallback chain.\n- Nested scroll view issues in YouTube Music home feed.\n- Desktop player song title overflow.\n- Full-screen player title text wrapping.\n- Localization strings showing literal `\\n` instead of rendering as newlines.\n- Radio mode button now hidden on the now playing bar when not connected to a YouTube Music host.\n- Window controls (close, minimize, maximize) not working on macOS.\n- YouTube Music search results page showing blank due to parsing logic not handling itemSectionRenderer sections.\n- YouTube Music community playlists search parameters updated to use double-letter codes matching ytmusicapi reference implementation.\n- \"Add Server\" button now visible even when no servers are configured."},{"version":"19.0.0","releaseTag":"build-99","date":"2026-06-04","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/b312fc3","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04.apk","aab":"https://github.com/openlyst/builds/releases/download/build-99/doudou-19.0.0-2026-06-04.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 19.0.0\n\n- Settings panels are now scrollable.\n- Adds a new radio mode for YouTube Music\n- Ensure other servers can't affect other servers \n- YouTube Music will show some songs if you have nothing added \n- Fix the desktop bottom bar favorite button not updating when clicked until state refreshed\n- The navbar actions are now centered\n- Switching servers will cancel the current queue\n- Don't show sections with 0 data in the song info panel.\n- Format timestamp for song info.\n- Hide quick action cards if they have 0 data.\n- Fix mini player not updating UI states.\n- Show the time stamps in the desktop player.\n- Detailed artist view will scroll with the user content\n- Fix library songs/artists/downloads tabs appearing empty when using non-English locale.\n- Fix queue crashes when switching servers with an empty or single-item queue.\n- Dont show the username on the top with the back button."},{"version":"18.0.0","releaseTag":"build-95","date":"2026-05-08","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/26ee712","platforms":["iOS","macOS","Windows","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline."},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-95/doudou-18.0.0-2026-05-08-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-95/doudou-18.0.0-2026-05-08-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-95/doudou-18.0.0-2026-05-08-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-95/doudou-18.0.0-2026-05-08-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-95/doudou-18.0.0-2026-05-08.apk","aab":"https://github.com/openlyst/builds/releases/download/build-95/doudou-18.0.0-2026-05-08.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 18.0.0\n\n# Added\n- Linux build failed in this release"},{"version":"17.0.0","releaseTag":"build-93","date":"2026-05-06","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/17.0.0","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-06-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-06-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-06-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-06-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-07-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-07-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-07-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-07-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-06.apk","aab":"https://github.com/openlyst/builds/releases/download/build-93/doudou-17.0.0-2026-05-06.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 17.0.0\n- Fix macOS YouTube Music playback\n- Set a smaller default window size for macOS\n- Fix add to playlist window not matching the theme of the app"},{"version":"16.2.0","releaseTag":"build-73","date":"2026-03-14","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/d6e103f40273800ac249a7852b58dcee4d9f76b6","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-73/doudou-16.2.0-2026-03-14.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 16.2.0\n- Navbar design tweaks\n- Page loading improved by up to 50%\n- New page transition animations\n- Fixed back button on settings subpages\n- Search bar now supports themes\n- Fixed downloads screen\n- Fixed songs and artists pages loading\n- Premade playlists now respond to themes\n- Custom art span support"},{"version":"16.1.0","releaseTag":"build-71","date":"2026-03-11","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/45e082790e7edc7323949962a9c3dc264a0aafe2","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-71/doudou-16.1.0-2026-03-11.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 16.1.0\n- Australian English patches\n- Fixed album art animations\n- Fixed animation smoothness\n- Removed GetX"},{"version":"16.0.0","releaseTag":"build-68","date":"2026-03-09","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/789380bb150f9cc91a456777a436549e759f3f03","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/doudou-16.0.0-2026-03-09.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 16.0.0\n\n- Complete app rewrite\n- Fixed bugs and finished missing features"},{"version":"15.0.0","date":"2026-02-27","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/863213914843d4003e84522abb52f6896a6d79c7","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-22/doudou-15.0.0-2026-02-27.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"}},"localizedDescription":"# 15.0.0\n\n## Highlights\n\n- **YouTube Music**: New provider (select in Server type). Search and stream without login. Home shows Harmony-style layout with Quick picks, Popular playlists, Trending; search shows Artists, Playlists, Songs.\n- **General options** (Settings > General): Toggles for Lyrics, Downloads, Volume on player bar, Queue button, Shuffle & repeat (desktop). YouTube Music can be re-enabled on Windows/Linux (off by default on desktop).\n- **Onboarding**: Language -> Theme (System/Light/Dark/OLED) -> Accent colour -> Get Started. Localized (English, 中文, Русский). When not logged in: welcome message and no-server screen after Get Started.\n- **Multi-server**: Add, edit, remove, switch saved servers without reload. Settings > Server lists saved servers; legacy single-server prefs migrate on first load.\n- **Detail headers**: Gradient derived from cover image (dominant color, darkened). Fades in over 280ms; no flicker. Shuffle/Play are circular icon-only; Shuffle in horizontal scroll on narrow panels.\n- **Artist/album/playlist**: Clickable artist names (no underline) open artist page when in library. Albums/Songs tab is animated segmented control (purple pill, 220ms). Tab bar full width, equal segments.\n- **Now playing**: Single responsive screen (mobile & desktop, breakpoint 900px). Compact: carousel, progress, controls, queue/favorite/lyrics/more. Expanded: album + controls left, Up Next / Lyrics right. Download in more-options: start, cancel, or delete download. Volume control. Close button clears queue and stops playback.\n- **Now playing polish (release pass)**:\n  - Desktop uses blurred artwork background and improved spacing for smaller heights.\n  - Play/pause visual treatment unified (no gradient orb styling).\n  - Volume controls support keyboard shortcuts and toggle-style panels.\n  - Queue and lyrics panels now hide/show contextually based on availability.\n- **YouTube Music follow-based home**:\n  - Home supports followed content and guidance when library is empty.\n  - Follow actions for artist/album/playlist with per-server persistence.\n  - Mix-style playlists are excluded from follow surfaces.\n- **Search**: Full-width bar. Shows albums, artists, songs for all providers; YouTube Music also shows community playlists. Server URL validation rejects YouTube Music with clear message.\n- **Dates**: Year/month/day (e.g. 2025/02/21) for album Added, Settings build date, log names.\n\n## Design & UI\n\n- **Organic refined** look: AppTokens (Plus Jakarta Sans + Nunito, teal accent, warm dark palette, soft radii). Same tokens on desktop and mobile; light, dark, OLED.\n- **OLED**: Pure black (#000000) everywhere when OLED theme selected. Dark mode uses charcoal (#1C1C1E).\n- **Gemini-style**: Dark palette (#0a0a0c page, #0e0e11 sidebar, etc.). Sidebar: purple logo box, rounded nav tiles, Library label, Settings at bottom. Settings sidebar: section headers, rounded cards, status (e.g. Connected).\n- **Dialogs**: Apple-style frosted glass (blur, rounded corners, scale/fade). showAppDialog / showAppConfirmDialog / showAppChoiceDialog (Apple* deprecated). Select Language, Theme, accent/custom color redesigned.\n- **Mobile**: extendBody so content under nav/player bars; bars use frosted glass. Bottom padding so content not covered by nav bar.\n- **Empty states**: Full-width centered icon and text. Home: no header; content starts with quick access and sections.\n- **Settings**: iOS-style grouped list (Server, Playback, Appearance, About), sub-pages. Connection shows Jellyfin username (User.Name) or \"Logged in\". Connection box adapts by provider (Local, YouTube Music, Jellyfin/Plex/Subsonic).\n- **Queue/lyrics overlays**:\n  - Current track is pinned at the top of queue presentations.\n  - Lyrics open at the current playback position.\n  - Lyrics tabs/buttons are hidden when lyrics are unavailable.\n\n## Fixes\n\n- **Queue**: Clear queue also clears current track and emits null so player bar hides.\n- **Layout**: Mobile nav no longer overflows on resize (Expanded + FittedBox). KeyedSubtree on breakpoint switch avoids _elements.contains assertion.\n- **Dialogs**: showAppleDialog (and Add/Edit server) use actionsBuilder so Navigator.pop uses dialog context-fixes \"Looking up a deactivated widget's ancestor\" when caller screen already closed.\n- **Search**: Bar no longer Expanded inside PageTemplate (layout crash); use fixed width (320px).\n- **Server settings**: Subsonic/Navidrome config data shown via displayServerUrl and displayUsername on login/restore.\n- **Now playing**: Album/artist lines under title have no underline. Lyrics: no yellow underline (TextDecoration.none).\n- **Now playing**: Volume overlay no longer blocks slider drag; tapping outside closes the overlay.\n- **Now playing**: Added mobile parity for The Mind Electric easter egg behavior.\n- **Settings**: Reliable scrolling (AlwaysScrollableScrollPhysics, ConstrainedBox). Add/switch server no longer kicks you off Settings (shell keeps selection).\n\n## Removed\n\n- Android Auto, voice commands (Google Assistant, deep links, MEDIA_PLAY_FROM_SEARCH, shortcuts).\n- Dynamic Isle / mini player island. Standalone Local Music screen (config in Settings only).\n- Refresh buttons (Library, Albums, Artists, Playlists, Tracks, detail, Rescan). Login screen (main shell always; Connect/Disconnect in Settings).\n- Unused: cached_image.dart, apple_design/glassmorphism.dart. General settings section (OLED/Show album art moved to Theme dialog). Mobile-only UI.\n\n## Linux\n\n- YouTube Music disabled in Server type and saved list by default; if current server was YT Music on startup, app switches or disconnects.\n- YouTube Music playback: media_kit (mpv), setlocale(LC_NUMERIC, \"C\") before mpv to avoid \"Non-C locale\" crash. Fallback: ~/.config/mpv/mpv.conf with ao=pulse,pipewire,alsa. Packaged .desktop uses LC_ALL=C.\n- Other Linux playback: audioplayers (GStreamer). Install gstreamer, gst-plugins-base, gst-plugins-good, gst-libav.\n\n## Refactors & performance\n\n- **Single codebase**: One set of Dart UI for mobile and desktop; sidebar >=768px, bottom nav on mobile. No ui/desktop vs ui/mobile split. Navigation in lib/services; theme in lib/ui/theme.\n- **Dialog API**: showAppDialog, showAppConfirmDialog, showAppChoiceDialog, AppDialogOption. Theme/layout in app_tokens.dart, desktop_theme.dart.\n- **Startup**: System info logging after first frame. Isolates for dominant color, cache/API JSON (Jellyfin, local). List keys, lazy tab loading, Selector for playlists/artists/albums. Now playing: AnimatedBuilder for skip/snap-back (no setState per tick); blur limited to header.\n- **YouTube Music**: Prefer 96-160 kbps stream; position-based completion fallback on mobile for auto-play/next.\n- **Lint**: mounted checks after async (media_details, settings_page); braces in now_playing lyrics.\n- **Cleanup**: Add-to-playlist consolidated (Create New Playlist in DesktopLayout; used from now-playing and home). ArtistDetailScreen vs ArtistDetailsPage clarified. Page template title: TextDecoration.none."},{"version":"14.0.0","date":"2026-02-16","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/09eba224946e3f087da2141f864ca633a6239041","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16.apk","aab":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"},"Web":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-31/doudou-14.0.0-2026-02-16-web.zip"},"localizedDescription":"# 14.0.0\n\n- New UI for both desktop and mobile.\n- Don't show desktop sidebar when on small screens.\n- Remove logging.\n- Expand the about Doudou section.\n- Port the old navbar.\n- Settings scales.\n- New app layouts.\n- Port the now playing screen.\n- Spec bump to 14.0.0.\n- Mobile track now goes left from right.\n- Lyrics icon is now a microphone; only shown when lyrics are available.\n- Fixed animation when reversing a song."},{"version":"13.0.0","date":"2026-02-15","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/0d1d59a8951a749861b887d239b88a285c5081ae","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-23/doudou-13.0.0-2026-02-15.apk","aab":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-23/doudou-13.0.0-2026-02-15.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"},"Web":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-22/doudou-13.0.0-2026-02-15-web.zip"},"localizedDescription":"# 13.0.0\n\n- Version bump to 13.0.0."},{"version":"12.0.1","date":"2026-01-15","sourceCode":"https://gitlab.com/Openlyst/doudou/-/tree/9128badfb8110270acaf2914d109f143ad509f5e","platforms":["iOS","macOS","Windows","Linux","Android"],"platformInstall":{"iOS":"Add the altstore repo https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository. Visit https://gitlab.com/HttpAnimations/repstore for installation instructions.","macOS":"Install via Homebrew: brew tap Openlyst/macos https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux.git && brew install --cask doudou","Windows":"Download source and compile yourself from GitLab pipeline.","Linux":"Download the latest Linux build from GitLab CI."},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-macos-unsigned.zip","homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-windows-x64-setup.exe","arm64":""},"msi":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-linux-amd64.deb","arm64":""},"aur":{"x86_64":"http://aur.archlinux.org/packages/doudou-bin","arm64":""},"homebrew":"https://github.com/JustACalico/Openlyst-more-builds?tab=readme-ov-file#homebrew-macoslinux"},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.doudou"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/doudou-12.1.0-2026-02-08-web.zip"},"localizedDescription":"# 12.0.1\n\n- Updated donate URL | https://openlyst.ink/support\n- Version bump to 12.0.1\n- Haptic feedback for favorite button"}]},{"name":"Finar","slug":"finar","bundleIdentifier":"finar","applicationId":"gitlab.openlyst.finar","subtitle":"Jellyfin frontend client","localizedDescription":"A modern Jellyfin client for all your devices.","iconURL":"https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Finar/finar.png?ref_type=heads","tintColor":"#6366f1","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"screenshots":["https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Finar/screen-0.jpg?ref_type=heads","https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Finar/screen-1.jpg?ref_type=heads"],"deprecated":false,"versions":[{"version":"4.1.1","date":"2026-05-07","sourceCode":"https://gitlab.com/Openlyst/finar/-/tree/5d1692870a724861e8a282b8f18df59e1700cf60","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"Coming soon via AltStore","Android":"Download the APK or AAB from the links below","macOS":"Download from GitLab CI or compile from source","Windows":"Download from GitLab CI or compile from source","Linux":"Download from GitLab CI or compile from source","Web":"Access the web version or self-host with Docker"},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-windows-x64-setup.exe","arm64":""}},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-linux-amd64.deb","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-linux-amd64.rpm","arm64":""}},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07.apk","aab":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.finar"},"Web":"https://github.com/openlyst/builds/releases/download/build-94/finar-4.1.1-2026-05-07-web.zip"},"localizedDescription":"# 4.1.1\n\n# Fixed\n- Fixed build issues for macOS"},{"version":"4.1.0","date":"2026-04-30","sourceCode":"https://gitlab.com/Openlyst/finar/-/tree/308f1dcfa14781dc3c93fd11d94f09432bde2c9b","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"Coming soon via AltStore","Android":"Download the APK or AAB from the links below","macOS":"Download from GitLab CI or compile from source","Windows":"Download from GitLab CI or compile from source","Linux":"Download from GitLab CI or compile from source","Web":"Access the web version or self-host with Docker"},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-windows-x64-setup.exe","arm64":""}},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-linux-amd64.deb","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-linux-amd64.rpm","arm64":""}},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30.apk","aab":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.finar"},"Web":"https://github.com/openlyst/builds/releases/download/build-92/finar-4.1.0-2026-04-30-web.zip"},"localizedDescription":"# 4.1.0\n\n# Added\n- Poster shows a watched icon if a movie or thing was already watched\n\n# Changed\n- Updated description\n\n# Fixed\n\n# Removed\n- Removed features from login page\n- Removed PiP mode"},{"version":"3.0.0","date":"2026-02-24","sourceCode":"https://gitlab.com/Openlyst/finar/-/tree/main","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"Coming soon via AltStore","Android":"Download the APK or AAB from the links below","macOS":"Download from GitLab CI or compile from source","Windows":"Download from GitLab CI or compile from source","Linux":"Download from GitLab CI or compile from source","Web":"Access the web version or self-host with Docker"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-windows-x64-setup.exe","arm64":""}},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.finar"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-14/finar-1.1.0-2026-02-24-web.zip"},"localizedDescription":"# 3.0.0\n\n# Added\n- Who's watching? screen for multiple Jellyfin accounts (Netflix-style profile picker)\n- Multiple accounts: save and switch between several server/user profiles\n- Add profile and Manage profiles flows; sign out removes current profile from device\n- Watchlist row on home (desktop and mobile); home data includes watchlist, invalidated when toggling from detail\n- Sleep timer: Settings > Playback (Off, 15/30/45/60 min, End of current); player overlay shows remaining time and Cancel\n- Theme and appearance: Settings > Appearance — Theme (System / Light / Dark), Use system accent, Accent color (Teal, Purple, Blue, Pink, Orange)\n\n# Changed\n- Unified UI: removed separate desktop/ and mobile/ page folders; single responsive pages (home, settings, detail, player, library, music_library, downloads) with sidebar on wide screens and bottom nav/single column on narrow\n- Library page (mobile): list-style cards with icon, type label, and item count instead of large gradient grid\n- Upgraded dependencies: dio, riverpod, flutter_riverpod, intl, package_info_plus, share_plus, gamepads; Riverpod 3 migration with legacy imports; share_plus 12 SharePlus API; AsyncValue.when for null fallbacks\n- App startup: with 2+ saved profiles, Who's watching is shown instead of auto-restoring; with 1 profile, behavior unchanged\n- Sidebar and Settings: Switch profile opens Who's watching; Sign out removes current profile (with confirmation)\n\n# Fixed\n- Theme and accent: theme mode (System/Light/Dark) and accent color now apply across the app; settings load before first frame so stored theme is used on launch; \"Use system accent\" is persisted via setUseSystemAccent\n- Detail more-options sheet: Download, Share, and Media Info now work; Add to Playlist / Report Issue show \"Coming soon\"\n- Home media card Add button adds/removes item from watchlist with SnackBar feedback\n- Music library track row: favorite button toggles favorite and refreshes list\n- Music player bar: Shuffle shuffles playlist and plays from start; Repeat cycles off → one → all; More shows \"Coming soon\" SnackBar\n- Queue \"Now Playing\" tap triggers play/pause; library sort button no longer appears disabled\n- Who's watching: show current session as a profile when saved list was empty (recovery); avoid row overflow with horizontal scroll or wrap\n- Login page: hide scrollbar on form scrollables; fix contrast (solid dark form card so white text is readable); Quick Connect tip uses textSecondary for readability"},{"version":"2.0.0","date":"2026-02-13","sourceCode":"https://gitlab.com/Openlyst/finar/-/tree/5a6add7ed0feabc15fc507563fe655a84db11344","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"Coming soon via AltStore","Android":"Download the APK or AAB from the links below","macOS":"Download from GitLab CI or compile from source","Windows":"Download from GitLab CI or compile from source","Linux":"Download from GitLab CI or compile from source","Web":"Access the web version or self-host with Docker"},"downloads":{"iOS":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-windows-x64-setup.exe","arm64":""}},"Linux":{"zip":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-19/finar-1.1.0-2026-02-15.apk","aab":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-19/finar-1.1.0-2026-02-15.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.finar"},"Web":"https://github.com/justacalico/Openlyst-more-builds/releases/download/build-13/finar-1.1.0-2026-02-13-web.zip"},"localizedDescription":"# 2.0.0\n\n- Version bump to 2.0.0.\n- Header now shows TV show name and episode.\n- Desktop search bar now spans the full width.\n- Removed the extra season picker for TV shows.\n- Opening an episode now takes you to the show page with that season expanded.\n- 'See All' buttons now work.\n- On-screen controls appear when you move the mouse.\n- On-screen controls auto-hide after a short delay.\n- Fixed card clipping.\n- Fixed desktop detail clipping/overflow by letting action controls wrap on smaller widths.\n- Fixed desktop detail action bar overflow on narrow widths by using a single-row horizontal action strip.\n- Resizing between desktop and mobile layouts now keeps page context (detail/player/library/downloads/settings).\n- Updated the desktop Details panel to use liquid glass styling.\n- Desktop sidebar profile card now hides the server URL and shows a user avatar (with initials fallback).\n- Focus/hover outlines on media cards now adapt to artwork colors instead of a fixed accent.\n- Updated the desktop Trailer button to match the liquid-glass style used by other controls.\n- Trailer playback flow now works end-to-end: local trailers play in-app, and remote trailers open through URL launcher with URL normalization."},{"version":"1.1.0","date":"2026-01-11","sourceCode":"https://gitlab.com/Openlyst/finar/-/tree/50ede4397530d4ee9f1459ca8faf82c1b4e354c4","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"Coming soon via AltStore","Android":"Download the APK directly from GitLab CI","macOS":"Download from GitLab CI or compile from source","Windows":"Download from GitLab CI or compile from source","Linux":"Download from GitLab CI or compile from source","Web":"Access the web version or self-host with Docker"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-windows-x64-setup.exe","arm64":""}},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.finar"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/finar-1.1.0-2026-02-08-web.zip"},"localizedDescription":"# 1.1.0\n\n## Fixed\n- Fixed controller input in SteamOS"}]},{"name":"Kilt","slug":"kilt","bundleIdentifier":"kilt","applicationId":"gitlab.openlyst.kilt","subtitle":"E926 API client","localizedDescription":"Built for the e621 community with privacy-focused defaults and a fast browsing workflow.","iconURL":"https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Kilt/icon.png?ref_type=heads","tintColor":"#f43f5e","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"screenshots":["https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Kilt/home.png?ref_type=heads","https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Kilt/popular.png?ref_type=heads","https://gitlab.com/Openlyst/openlyst/-/raw/main/static/icons/Kilt/post.png?ref_type=heads"],"deprecated":false,"versions":[{"version":"10.1.2","releaseTag":"build-110","date":"2026-06-11","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/main","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-windows-x64.zip","arm64":""},"exe":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-windows-x64.zip","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"","arm64":""}},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11.apk","aab":"https://github.com/openlyst/builds/releases/download/build-110/kilt-10.1.2-2026-06-11.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":""},"localizedDescription":"# 10.1.2\n\n- Renames the application to not sound like a bad word in English and updates the app id"},{"version":"10.1.0","releaseTag":"build-102","date":"2026-06-09","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/main","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-102/klit-10.1.0-2026-06-09-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"","homebrew":""},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-102/klit-10.1.0-2026-06-09-windows-x64.zip","arm64":""},"exe":{"x86_64":"","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-102/klit-10.1.0-2026-06-09-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"","arm64":""},"deb":{"x86_64":"","arm64":""}},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-102/klit-10.1.0-2026-06-09.apk","aab":"","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":""},"localizedDescription":"# 10.1.0\n\n- App is being renamed from Klit to Kilt in English because the old name sounds like an inappropriate word\n- Migrated to e621 Post API v2\n- Updated post response parsing for new JSON structure (files, stats, flags, has, relationships)\n- Added support for new fields: uploader_name, change_seq, approver_id, locked_tags\n- Tags are now returned as flat array (grouped as 'general' for compatibility)\n- Removed unwrapRailsArray from post endpoints (v2 returns arrays directly)"},{"version":"9.0.1","releaseTag":"build-90","date":"2026-04-12","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/7a97c17f851f36eb8ab4f9817ca4c0d87914e88e","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-windows-x64-setup.exe","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"","arm64":""}},"Android":{"apk":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12.apk","aab":"https://github.com/openlyst/builds/releases/download/build-90/klit-9.0.1-2026-04-12.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":""},"localizedDescription":"# 9.0.1\n\n- Fix macos network"},{"version":"9.0.0","releaseTag":"build-68","date":"2026-03-09","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/ecefcc8f864237d6eee790c1fcf404079aca7cb0","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-windows-x64-setup.exe","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-68/klit-9.0.0-2026-03-09.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":""},"localizedDescription":"# 9.0.0\n\n- Complete codebase rewrite"},{"version":"8.1.0","date":"2026-03-01","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/010ed0f7e8e37e6cfee0b5461076437a158157a4","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-windows-x64-setup.exe","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-23/klit-8.1.0-2026-03-01-web.zip"},"localizedDescription":"# 8.1.0\n\n- Remove Server Configuration from Settings: the host/API server is no longer configurable in Settings; to use a different host (e.g. e621 vs e926), add a new account for that host and switch accounts\n- Keep tab pages alive with IndexedStack so switching tabs or resizing desktop/mobile does not dispose pages; images and scroll position are preserved\n- Search page: when opened with a new query (e.g. from tag tap), update search field and run search via didUpdateWidget\n- Optimistic favorite and upvote in post detail: UI and confetti update immediately; API runs in background and state reverts on failure\n- Posts provider: use separate loading-more flags for latest/hot/popular so existing lists show without a full loading state when loading more\n- Profile: in-memory cache so returning to a previously loaded profile shows instantly, then refreshes in background\n- Post card: stable cacheKey for CachedNetworkImage so cache lookup is consistent across rebuilds\n- Feeds (edit): tag suggestions in And/Or/Exclude fields via shared TagSuggestionField widget; reuses search-tag logic (debounce, prefix, insert at cursor)\n- Post detail: catch precache image failures (invalid image data) so they do not throw or spam the console\n- Post detail: full OLED theme support - scaffold, nav bar, desktop top bar, info panel, controller hints and comments sheet use pure black / OLED colors when OLED mode is on\n- Settings > Video: add \"Autoplay GIFs\" (default on) to animate GIFs in home, search, and other grids; when off, post cards show static preview for GIFs\n- GIF autoplay: only animate GIFs when the post card is in view (visibility detector); off-screen cards show static preview to reduce lag. While the GIF loads or on error, show the static preview so there is no black or grey flash\n- Feeds: when creating or editing a feed you can set rating (All / Safe / Q / E) and sort (Newest, Oldest, Score, Favorites); opening a feed applies these filters like on the search page\n- Feeds: optional \"Exclude my favorites\" (default off); when on, the feed excludes posts you have favorited\n- Feeds: subfeeds - attach optional subfeeds to a feed (name + extra include/exclude tags); when viewing the feed, tabs show Main and each subfeed; only one subfeed active at a time; subfeed adds its tags to the main query\n- Feeds tab: subfeeds listed under each feed card (indented, smaller) so you can open a feed with a specific subfeed active directly from the list\n- Feeds and Search stay inside the shell: opening a feed switches to the Search tab with filters instead of pushing a full-screen route; creating/editing a feed shows the form in the Feeds tab so the nav bar and sidebar remain visible\n- Search page: single top bar with search field and filter/search buttons instead of separate title bar and toolbar\n- Search page (desktop): hide history sidebar when history is off or empty; results use full width\n- OLED mode: glass header variant (search/feed top bar) uses solid black when OLED is on; search toolbar text field uses OLED secondary background\n- Settings: full OLED theming - account/cards, sidebar, content header border, category list, nav order and proxy dialogs, update check dialogs use black/secondary OLED colors when OLED mode is on"},{"version":"8.0.1","date":"2026-02-27","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/33a3b7560c14d356b8619201f0ce2a1e0cb8714f","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-windows-x64-setup.exe","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-linux-x86_64.AppImage","arm64":""},"rpm":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-linux-amd64.rpm","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-21/klit-8.0.1-2026-02-27-web.zip"},"localizedDescription":"# 8.0.1\n\n- Top bar redesigned"},{"version":"8.0.0","date":"2026-02-23","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/e06527ade9feebe7b6e693eba1363c1d4377c60f","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-windows-x64-setup.exe","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-13/klit-8.0.0-2026-02-23-web.zip"},"localizedDescription":"# 8.0.0\n\n- README: expanded with features, prerequisites, getting started, and build instructions\n- Settings Account: visual refresh; Accounts section with description and filled Add button\n- Settings Account (mobile): fix semantics assertion (parentDataDirty) by giving embedded account list bounded height\n- OLED theme: use pure black for all backgrounds and bar\n- Android: opt out of edge-to-edge so status bar can be hidden on Android 15+\n- Fix black-on-black text in Settings Account, Feeds, Profile, Favorites, and Blacklist empty states\n- Android: hide system status bar for a cleaner full-screen look\n- Settings (Android): system back button returns to main settings list from sub-pages\n- Post detail: show instantly when opened from list using already-loaded post data\n- Feeds: multi-host support; feed list global (same for all accounts)\n- Post detail: preload comments; comments sheet shows them immediately and lazy-loads more on scroll\n- Post detail: vote buttons and score/comment indicators use thumbs up / thumbs down icons\n- Post grid: cache dimensions from post preview aspect ratio; wrap each cell in AspectRatio\n- Performance: offload API JSON parsing to background isolate; storage JSON decode moved to background isolate\n- macOS: minimum deployment target raised to 11.0\n- Post detail: tag chips coloured by tag category; preload preview and full image for adjacent posts\n- I-finished milk animation and Gallery button for finished posts in Settings Behavior\n- App starts in guest mode; login page only when user chooses to log in\n- Mobile nav bar: default Home, Search, Profile, Settings; More menu opens Hot, Popular, Favorites, Feeds\n- Profile: three tabs (Main, Uploads, Favorites) with pill-style tab bar\n- Search history and feeds per-account\n- Feeds: Both type (image + video); And tags and Or tags\n- Settings: Back button when opened as route; reorder categories; Feeds in desktop sidebar\n- Account options: Test connection; Account management in Settings > Account only\n- Optional I-finished button (default off) with milk-style animation and optional camera photo\n- Feeds: e621 file-type metatags for image/video; create image or video feeds with include/exclude tags\n- Post detail: View profile opens in-app profile; resolve uploader username by ID; uploader profile card\n- OLED theme: pure black across shell, nav bar, sidebar, settings, search, profile, login, post cards\n- Profile page redesign: hero card with avatar, stats grid, account info, styled action buttons\n- Settings Account: avatar glow and border from profile image; show user profile picture when available\n- Post detail: tapping a tag navigates to search tab; e621-style DText in descriptions and comments\n- Download: Android/iOS save to photo gallery; desktop save to Downloads/openlyst/klit with Open folder\n- Complete UI redo: responsive UI layer with layout scope, shell, widgets, pages; desktop sidebar, mobile bottom nav\n- New unified UI system (single codebase for desktop and mobile); major performance optimizations\n- New navbar engine; stateless"},{"version":"7.0.0","date":"2026-01-18","sourceCode":"https://gitlab.com/Openlyst/klit/-/tree/4d06d6e18f9c9467a4cf44c79916e7371bc3328f","platforms":["iOS","macOS","Windows","Linux","Android","Web"],"platformInstall":{"iOS":"https://gitlab.com/Openlyst/copy-downloads/-/raw/main/apps.json","Android":"Use Openlyst to install from our repository","macOS":"Download the latest macOS build","Windows":"Download the latest Windows build","Linux":"Download the latest Linux build from GitLab CI","Web":"Access the web version"},"downloads":{"iOS":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-ios-unsigned.ipa","macOS":{"x86_64":"","arm64":"","universal":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-macos-unsigned.zip","homebrew":""},"Windows":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-windows-x64.zip","arm64":""},"exe":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-windows-x64-setup.exe","arm64":""},"msix":{"x86_64":"","arm64":""},"portable":{"x86_64":"","arm64":""},"winget":"","chocolatey":"","scoop":""},"Linux":{"zip":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-linux-x64.zip","arm64":""},"appimage":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-linux-x86_64.AppImage","arm64":""},"deb":{"x86_64":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-linux-amd64.deb","arm64":""}},"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.kilt"},"Web":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/klit-7.0.0-2026-02-08-web.zip"},"localizedDescription":"# 7.0.0\n\n- Updates version to **7.0.0**.\n- Updated description to \"E926 API client\"\n\n## Added\n\n### 🔄 Pull-to-Refresh on Mobile Home Page\n- Added native pull-down-to-refresh support on the mobile Home page\n- Swipe down from the top of the post grid to refresh latest posts\n- Smooth refresh indicator animation with haptic feedback\n\n### ⌨️ Keyboard Controls for Mobile Post Viewer\nAdded keyboard navigation support to the mobile post detail viewer, matching the desktop experience:\n\n**Navigation:**\n- `A` / `←` — Previous post\n- `D` / `→` — Next post\n\n**Actions:**\n- `F` — Toggle favorite\n- `W` / `↑` — Upvote (toggle)\n- `S` / `↓` — Downvote (toggle)\n\n### 📱 Material Style Navigation Bar\n- Added a proper Material-style bottom navigation bar when Material UI mode is enabled\n- Full-width design with simple icon/label layout (no floating pill style)\n- Clean top border separator instead of shadow/blur effects\n- Consistent with Android Material Design guidelines\n\n### ⚙️ Material Style Settings Page\n- Settings page now responds to UI style mode\n- Material mode uses solid containers without blur effects\n- Clean borders and simple dividers in Material mode\n- Removes glass effects and shadows for better performance on lower-end devices\n\n### 🌈 Rating Aura on Post Cards\n- Posts now display a colored glow/aura around the card based on content rating\n- **Green** — Safe content\n- **Orange** — Questionable content\n- **Red** — Explicit content\n- Removed the text badge from the bottom-left corner for a cleaner look\n- Rating is now instantly visible at a glance without reading text\n- **Liquid Glass mode**: Enhanced glass-like aura with layered glows, soft outer bloom, and subtle highlight reflection\n- **Material mode**: Simple, performance-focused aura effect\n\n### 📐 Centralized Post Grid Settings\n- New **POST GRID** section in Settings with comprehensive controls:\n  - **Auto Mode** — Automatically adjusts grid columns based on screen width (2 cols for phones, 3 for tablets, up to 8 for large monitors)\n  - **Grid Size** — Manual control for number of columns (disabled when Auto Mode is on)\n  - **Spacing** — Slider to control gap between post cards (0-16pt)\n  - **Padding** — Slider to control outer padding around the grid (0-24pt)\n  - **Score Threshold** — Configurable minimum score filter for latest posts (0-100, default: 20). Posts automatically reload when changed.\n- Added same POST GRID settings to desktop settings page (Content section)\n- Removed per-page grid size controls from Home, Hot, Popular, Favorites, and Search pages\n- Removed grid size selectors from desktop toolbar (Home, Hot, Popular, Favorites, Search)\n- All pages now use centralized settings for consistent appearance\n\n### 🚫 Blacklist Management\n- New **BLACKLIST** section in Settings (mobile and desktop):\n  - **Enable Blacklist** — Toggle to enable/disable blacklist filtering globally\n  - **Manage Blacklist** — Opens dedicated page to edit blacklist rules\n- **Blacklist Settings Page** with full management:\n  - **Sync from Account** — Pull blacklisted tags from your e621/e926 account\n  - **Text Editor** — Edit blacklist entries directly (one tag/rule per line)\n  - **Help Dialog** — Documents blacklist syntax (AND logic, rating filters, wildcards, metatags)\n  - Shows active rule count and enabled status\n- All pages automatically filter posts based on blacklist rules\n\n## Fixed\n\n### 🎊 Left-Handed Mode Confetti Position\n- Fixed confetti animation playing from the wrong side when left-handed mode is enabled\n- Confetti now correctly originates near the favorite button position in both left and right-handed modes\n\n### 📐 Auto Mode Grid Scaling\n- Fixed auto mode only using up to 4 columns even on large screens\n- Auto mode now scales properly: 2 cols (phones) → 3 (tablets) → 4-5 (small desktops) → 6-8 (large monitors)\n- Grid now properly responds to window resizing using LayoutBuilder\n\n### 🔍 Tag Suggestions Overhaul\n- **Fixed `-tag` and `~tag` prefix handling**: Tag suggestions now properly work when typing exclusion tags (e.g., `-scat`, `-young`) or optional tags (`~tag`)\n- **Fixed suggestions closing unexpectedly**: Removed aggressive focus-based closing that caused suggestions to disappear while typing\n- **Fixed suggestions appearing when not wanted**: Suggestions now only appear when actively typing a tag (2+ characters)\n- **Tap outside to close**: Suggestions close when tapping anywhere outside the suggestion list\n- **Better word detection**: Properly extracts the current word being typed, handling cursor position correctly\n- **Prefix preservation**: When selecting a suggestion for `-tag` or `~tag`, the prefix is correctly preserved\n\n### 🖼️ Full Resolution Image Loading\n- Fixed mobile post viewer not loading full resolution images\n- Mobile now uses the same resolution priority as desktop: full file → sample → preview\n- Fixes issues with small images (e.g., 512x512) not displaying at full quality on alternative servers"}]},{"name":"Openlyst","slug":"openlyst","bundleIdentifier":"repstore","applicationId":"gitlab.openlyst.repstore","subtitle":"Alternative App Store for Android","localizedDescription":"Openlyst is an alternative app store for Android built around AltStore-compatible repositories. Browse repositories and install APKs in one place.","iconURL":"https://gitlab.com/Openlyst/repstore/-/raw/main/icon.png?ref_type=heads","tintColor":"#10b981","platforms":["Android"],"screenshots":["https://gitlab.com/Openlyst/repstore/-/raw/main/docs/imgs/app.png?ref_type=heads","https://gitlab.com/Openlyst/repstore/-/raw/main/docs/imgs/home.png?ref_type=heads","https://gitlab.com/Openlyst/repstore/-/raw/main/docs/imgs/search.png?ref_type=heads","https://gitlab.com/Openlyst/repstore/-/raw/main/docs/imgs/news.png?ref_type=heads","https://gitlab.com/Openlyst/repstore/-/raw/main/docs/imgs/sources.png?ref_type=heads"],"deprecated":true,"versions":[{"version":"4.0.0","date":"2026-02-27","sourceCode":"https://gitlab.com/Openlyst/repstore/-/tree/197fdebb8b05ba36e8192c0f9e4eb3ca28a7c16b","platforms":["Android"],"platformInstall":{"Android":"Download the APK directly from our repository"},"downloads":{"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-18/repstore-4.0.0-2026-02-27.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-18/repstore-4.0.0-2026-02-27.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.repstore"}},"localizedDescription":"# 4.0.0\n- Rebranded to Openlyst\n- Removed F-Droid support\n- Removed APKPure support\n- Simplified to single Openlyst API mode\n- Added update checking\n- UI redesign\n- Removed desktop UI\n- Added OLED theme\n- Added accent color options"},{"version":"3.2.0","date":"2026-02-22","sourceCode":"https://gitlab.com/Openlyst/repstore/-/tree/6228381dc89f9df35906882397d45471e517d934","platforms":["Android"],"platformInstall":{"Android":"Download the APK directly from our repository"},"downloads":{"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-3/repstore-3.2.0-2026-02-22.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-3/repstore-3.2.0-2026-02-22.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.repstore"}},"localizedDescription":"# 3.2.0\n\n## Changed\n- Support OpenLyst API `tempDownloadsOff` flag: when the repo has downloads temporarily disabled, the app shows \"Unavailable\" for install/update and a message that hosted builds are temporarily unavailable\n- Share app from app detail (More menu) shares app name, subtitle, and repo link\n- Report Issue in app detail opens repository website or support URL\n- App detail desktop sidebar: Website and Support open repository website when available\n- News cards: share uses system share with title, caption, and URL\n- App version in API User-Agent and elsewhere now comes from pubspec (via PackageInfo at startup)\n\n## Added\n- APKPure as an optional repository source (enable in Settings). Browse and search APKPure apps; install via in-app download. Data is loaded from the APKPure website.\n\n## Fixed\n- F-Droid repository now loads all apps instead of only 100\n- Lint: prefer conditional assignment, use_build_context_synchronously, unnecessary getters/setters"},{"version":"3.1.0","date":"2026-01-12","sourceCode":"","platforms":["Android"],"platformInstall":{"Android":"Download the APK directly from our repository"},"downloads":{"Android":{"apk":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/repstore-3.1.0-2026-02-22.apk","aab":"https://gitlab.com/api/v4/projects/79691113/packages/generic/github-mirror/build-4/repstore-3.1.0-2026-02-08.aab","apkpure":"https://apkpure.com/p/gitlab.openlyst.repstore"}},"localizedDescription":"# 3.1.0\n\n## Added\n- Auto-refresh app install status when returning to the app\n\n## Changed\n- Updated description.\n- Download progress now only shows for the specific version being downloaded\n\n## Fixed\n- Fixed app install detection not recognizing installed apps\n- Apps now correctly show \"Open\" when installed, \"Update\" when older version is installed"}]}]}