{"id":35133434,"url":"https://github.com/j6k4m8/coppelia","last_synced_at":"2026-05-28T17:01:04.200Z","repository":{"id":331049957,"uuid":"1123940073","full_name":"j6k4m8/coppelia","owner":"j6k4m8","description":"A beautiful native app for Jellyfin music libraries","archived":false,"fork":false,"pushed_at":"2026-05-23T17:33:28.000Z","size":13455,"stargazers_count":26,"open_issues_count":5,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-23T18:25:23.499Z","etag":null,"topics":["android","audio","audio-player","dart","flutter","ipad","iphone","jellyfin","jellyfin-client","macos","music","music-player","tablet"],"latest_commit_sha":null,"homepage":"https://blog.jordan.matelsky.com/coppelia","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/j6k4m8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-28T00:49:55.000Z","updated_at":"2026-05-23T17:33:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/j6k4m8/coppelia","commit_stats":null,"previous_names":["j6k4m8/coppelia"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/j6k4m8/coppelia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j6k4m8%2Fcoppelia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j6k4m8%2Fcoppelia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j6k4m8%2Fcoppelia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j6k4m8%2Fcoppelia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j6k4m8","download_url":"https://codeload.github.com/j6k4m8/coppelia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j6k4m8%2Fcoppelia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33617718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","audio","audio-player","dart","flutter","ipad","iphone","jellyfin","jellyfin-client","macos","music","music-player","tablet"],"created_at":"2025-12-28T07:35:24.330Z","updated_at":"2026-05-28T17:01:04.139Z","avatar_url":"https://github.com/j6k4m8.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=center\u003eCoppelia\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  A native macOS, iOS, Android, and Linux app for Jellyfin music libraries (Windows coming soon).\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-macOS-333333?style=for-the-badge\u0026logo=apple\u0026logoColor=white\" alt=\"macOS Platform\"/\u003e \u0026nbsp;\n  \u003cimg src=\"https://img.shields.io/badge/Platform-Android-3DDC84?style=for-the-badge\u0026logo=android\u0026logoColor=white\" alt=\"Android Platform\"/\u003e \u0026nbsp;\n  \u003cimg src=\"https://img.shields.io/badge/Platform-iOS-000000?style=for-the-badge\u0026logo=ios\u0026logoColor=white\" alt=\"iOS Platform\"/\u003e \u0026nbsp;\n  \u003cimg src=\"https://img.shields.io/badge/Platform-Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\" alt=\"Linux Platform\"/\u003e \u0026nbsp;\n  \u003cbr /\u003e\n  \u003cimg alt=\"GitHub Downloads (all assets, all releases)\" src=\"https://img.shields.io/github/downloads/j6k4m8/coppelia/total?style=for-the-badge\u0026logo=github\"\u003e \u0026nbsp;\n  \u003cimg src=\"https://img.shields.io/badge/Framework-Flutter-02569B?style=for-the-badge\u0026logo=flutter\u0026logoColor=white\" alt=\"Flutter Framework\"/\u003e\u0026nbsp;\n\u003c/p\u003e\n\n---\n\nCoppelia is a cross-platform app designed for Jellyfin music libraries. I built it because I couldn't find an app that was:\n\n-   native / low-resource\n-   beautiful\n-   open source\n\nIf you hold in your heart other bulletpoints than these, please share and help make Coppelia better!\n\n## Screenshots\n\nFor more screenshots and info about themes, see [the wiki](https://github.com/j6k4m8/coppelia/wiki/Themes).\n\n### macOS\n\n\u003cimg width=\"512\"  alt=\"themes\" src=\"https://github.com/user-attachments/assets/4fd0ced0-f558-4cdb-81c6-1fc27e76b2be\" /\u003e\n\n### Mobile (iOS + Android)\n\n|                             |                            |                                                                                      |                                                                                      |\n| --------------------------- | -------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |\n| ![](docs/iPhone-Auth.png)   | ![](docs/iPhone-Cache.png) | ![](https://github.com/user-attachments/assets/ca1209c1-5a98-4280-a71a-3f0618c2a234) | ![](https://github.com/user-attachments/assets/201e392a-bb47-47a2-997b-29fc17a0fc06) |\n| ![](docs/iPhone-Tracks.png) | ![](docs/Android-Home.png) | ![](docs/Android-Tracks.png)                                                         | ![](https://github.com/user-attachments/assets/c90fcac9-9b07-4de7-bbac-95a381fce5bf) |\n\n## Features\n\n-   Jellyfin authentication\n-   Fast library browsing and search (albums, artists, genres, playlists)\n-   Playlist management with create, rename, delete, add/remove tracks, and drag reordering\n-   Audio playback with queue controls, play-next, and clear-queue\n    -   macOS Now Playing integration + media key shortcuts\n-   Gapless playback between tracks\n-   Repeat playback (track or queue)\n-   Android lockscreen + notification media controls with artwork\n-   Linux desktop support (GTK)\n-   Favorite and unfavorite tracks/albums/artists\n-   Playback resume that restores your last track and position when you reopen the app\n-   Configurable home shelves, sidebar sections, and layout choices\n-   Appearance controls: theme mode, font family, font scale, and layout density\n-   Accent color presets, custom hex, and now playing palette theming\n-   A–Z track browsing with quick alphabet jump\n-   Shuffle playback for albums, artists, genres, and playlists\n-   Jump in random picks with auto-refresh\n-   Full-screen Now Playing view with immersive artwork\n-   Mobile gestures: Now Playing swipes + edge-swipe sidebar\n-   Cached playlists/tracks/audio with size reporting and cache management\n-   Pin tracks, albums, and artists for offline playback via context menus\n-   Download manager with per-item progress, prioritization, and Wi-Fi rules\n-   Offline library sections for pinned albums, artists, playlists, and tracks\n-   Offline mode toggle that switches the UI to cached-only content\n-   Album/artist header actions for favorites and offline pinning\n-   Optional auto-download of favorited items for offline playback (Wi-Fi only toggle)\n-   Artwork fallbacks and rich detail views with context actions\n-   Smart Lists (self-updating local playlists)\n-   **NO ELECTRON 🫦**\n\n## Downloads \u0026 Installation\n\nFor macOS, iOS, and Android, you can download Coppelia from [the Releases page](https://github.com/j6k4m8/coppelia/releases).\n\n### macOS\n\nYou will need to allow Coppelia to run from _System Preferences \u003e Security \u0026 Privacy \u003e General_, as it is not yet notarized by Apple. Alternatively from the terminal, you can run:\n\n```bash\nxattr -d com.apple.quarantine /path/to/Coppelia.app\n```\n\n### Android\n\nYou may need to enable installation from unknown sources in your device settings.\n\nF-Droid listing coming soon!\n\n### iOS\n\nYou will need to sideload the app using Xcode or a tool like AltStore for now...\n\n### Linux\n\n#### Arch Linux \u0026 Derivatives (AUR)\n\n\u003e [!info]\n\u003e This section covers the `-bin` package. For the most up-to-date version, you can also use the `-git` package, which compiles directly from the source.\n\u003e Please note that some Linux-specific quirks may occur, as I do not currently have access to a physical machine for testing.\n\nUsing **yay**:\n```bash\nyay -S coppelia-bin\n```\nUsing **paru**\n```\nparu -S coppelia-bin\n```\nOther Distributions\n\nYou can download Coppelia directly from the official Releases page.\n\n## Keyboard Shortcuts\n\nAll shortcuts are configurable in the Settings screen. `^` indicates the Cmd key on macOS, and the Ctrl key on Windows/Linux.\n\n| Action               | Keyboard Shortcut             |\n| -------------------- | ----------------------------- |\n| Play / Pause         | Media Play/Pause Key/Spacebar |\n| Next Track           | Media Next Track Key          |\n| Previous Track       | Media Previous Track Key      |\n| Focus Search Field   | `^` + `K`                     |\n| Clear Search Field   | `Esc`                         |\n| Open Settings Screen | `^` + `,`                     |\n\n## Roadmap\n\n-   Windows support (**can you help test**??)\n-   AirPlay and Chromecast support\n-   Your idea here?\n\n## Smart Lists\n\nSmart Lists are self-updating, local playlists powered by rules.\nSee [`docs/Smart-Lists.md`](docs/Smart-Lists.md) for the full guide and query language.\n\n\u003cimg width=\"954\" height=\"942\" alt=\"image\" src=\"https://github.com/user-attachments/assets/f7738de4-ce38-4c22-a4f4-2619ea1ecb49\" /\u003e\n\n## Track List Styles\n\n| Default Track Card                                                                   | Table Row Item                                                                       |\n| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |\n| ![](https://github.com/user-attachments/assets/387a5e10-0a83-474e-a5b5-84cfdd580c83) | ![](https://github.com/user-attachments/assets/2a121f2a-ad77-4c11-8459-d351d1a6f3e7) |\n\n---\n\n## Developing\n\n-   macOS: `docs/Developing-macOS.md`\n-   iOS (Simulator): `docs/Developing-iOS.md`\n-   Android (Emulator/Device): `docs/Developing-Android.md`\n-   Linux: `docs/Developing-Linux.md`\n\n## Notes\n\n-   The Jellyfin server URL should be your base URL (for example `https://jellyfin.example.com`).\n-   Cached audio is stored using Flutter's cache manager to speed up repeat playback.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj6k4m8%2Fcoppelia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj6k4m8%2Fcoppelia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj6k4m8%2Fcoppelia/lists"}