{"id":797,"date":"2026-08-12T01:23:01","date_gmt":"2026-08-12T01:23:01","guid":{"rendered":"https:\/\/jackharvest.com\/?p=797"},"modified":"2026-09-13T23:04:00","modified_gmt":"2026-09-13T23:04:00","slug":"pocketflex-plex-client-miyoo-mini-plus-onionos","status":"publish","type":"post","link":"https:\/\/jackharvest.com\/index.php\/2026\/08\/12\/pocketflex-plex-client-miyoo-mini-plus-onionos\/","title":{"rendered":"PocketFlex \u2013 A Plex Client for the Miyoo Mini Plus (OnionOS)"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"483\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-logo.png\" alt=\"PocketFlex logo: a play-button card tucked into a denim pocket\" class=\"wp-image-759\" style=\"width:150px\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-logo.png 350w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-logo-217x300.png 217w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">The Miyoo Mini Plus is a wonderful little retro handheld. It also has Wi-Fi, a nice screen, and a copy of <code>ffplay<\/code> sitting on the card doing nothing. So: Plex.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PocketFlex browses your Plex libraries the same way you browse ROMs, and hands playback to that <code>ffplay<\/code>. No artwork, no grid, no launcher \u2014 just lists, which is the only thing that stays fast on 128 MB of RAM. And you can save films and episodes to the SD card and watch them with the Wi-Fi switched off, which is really the reason to want this on a handheld at all.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-home.png\" alt=\"PocketFlex home screen on the Miyoo Mini Plus with Continue Watching and libraries\" class=\"wp-image-755\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-home.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-home-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-home-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-home-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">The home screen.<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/jackharvest\/PocketFlex\/releases\/latest\">Download PocketFlex<\/a><\/div>\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/jackharvest\/PocketFlex\">View on GitHub<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What you need<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>Miyoo Mini Plus<\/strong>. The Wi-Fi is not optional, so the original Mini won\u2019t work.<\/li>\n\n<li><strong>OnionOS<\/strong> \u2014 built and tested against 4.3.1.<\/li>\n\n<li>A Plex server you can reach, and an account to sign into.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing gets compiled and nothing gets installed onto the firmware. PocketFlex is shell scripts calling binaries OnionOS already ships (<code>st<\/code>, <code>ffplay<\/code>, <code>curl<\/code>, <code>jq<\/code>), so there\u2019s nothing to undo \u2014 delete the folder and it\u2019s gone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Download the zip from the latest release.<\/li>\n\n<li>Power the handheld off and put the SD card in your computer.<\/li>\n\n<li>Unzip it and copy the <code>PocketFlex<\/code> folder into the <strong>App<\/strong> folder on the card (keep the name \u2014 the menu icon is referenced by full path).<\/li>\n\n<li>Put the card back, boot up, and find PocketFlex under <strong>Apps<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">First launch shows a four-character code. Type it in at <a href=\"https:\/\/plex.tv\/link\">plex.tv\/link<\/a> on your phone and the handheld picks it up within seconds. Multiple profiles? You get a chooser, PIN pad and all.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What it looks like<\/h2>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-2 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" data-id=\"758\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-library.png\" alt=\"PocketFlex library view with the server\u2019s own rows\" class=\"wp-image-758\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-library.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-library-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-library-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-library-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">A library, with its own rows<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" data-id=\"756\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-item.png\" alt=\"PocketFlex item card with resume, subtitles, audio track and download options\" class=\"wp-image-756\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-item.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-item-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-item-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-item-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">Resume, subtitles, audio, download<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" data-id=\"753\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-downloads.png\" alt=\"PocketFlex downloads, filed in the folders they came from\" class=\"wp-image-753\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-downloads.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-downloads-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-downloads-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-downloads-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">Downloads, filed where you found them<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" data-id=\"757\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-letters.png\" alt=\"PocketFlex browse-by-letter index\" class=\"wp-image-757\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-letters.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-letters-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-letters-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-letters-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">Browse by letter<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" data-id=\"760\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-ready.png\" alt=\"PocketFlex Ready to play card explaining the controls\" class=\"wp-image-760\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-ready.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-ready-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-ready-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-ready-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">What\u2019s about to happen, before it plays<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1272\" height=\"928\" data-id=\"761\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-settings.png\" alt=\"PocketFlex settings screen\" class=\"wp-image-761\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-settings.png 1272w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-settings-300x219.png 300w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-settings-1024x747.png 1024w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/pocketflex-settings-768x560.png 768w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><figcaption class=\"wp-element-caption\">Settings you\u2019ll mostly never touch<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Downloads<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Save a film, an episode, or a whole season, then watch with the radio off. If the server can\u2019t be reached at startup, PocketFlex opens on your downloads rather than giving up. A 24-minute episode came out at 53 MB and took 26 seconds to pull down \u2014 they\u2019re transcoded on the way in, because the original would neither fit on the card nor decode on this chip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two things to know: downloads only run while PocketFlex is open (a background download holding the Wi-Fi up with nothing on screen would be a mystery battery drain), and they can\u2019t be resumed, because the server sends one continuous stream.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why B doesn\u2019t go back<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This one catches everybody. On this device <strong>B, X, Y and SELECT are wired to bare modifier keys<\/strong> \u2014 and a terminal receives nothing at all when you press a bare modifier. Not a key, not a byte. There\u2019s no binding to fix, because nothing arrives. So Back lives on <strong>R1<\/strong> and <strong>SELECT<\/strong>, and every list keeps a <code>.. Back<\/code> row so you\u2019re never stuck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Everything is transcoded (and the audio trap)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Direct play never worked here \u2014 <code>ffplay<\/code> would exit after a second or two on anything. So it\u2019s 480p (full panel) or 320p, both panel-sized. Audio is forced to stereo, which sounds like a detail and isn\u2019t: this <code>ffplay<\/code> opens a stereo device, and handed 5.1 AAC the audio stalls and drags the video clock with it. The film plays at half speed, silently, and looks exactly like a transcode that didn\u2019t happen. Subtitles are burned in by the server, since there\u2019s no libass here.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Everything else it does<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Continue Watching, movie and show libraries, seasons, episodes \u2014 plus <strong>Go to season<\/strong> and <strong>Go to show<\/strong> from any episode<\/li>\n\n<li>Automatic server detection on your LAN<\/li>\n\n<li>Audio track selection, written back to your account<\/li>\n\n<li>Autoplay the next episode and skip intros using your server\u2019s chapter markers<\/li>\n\n<li>Watched state and resume points reported back to Plex<\/li>\n\n<li>Battery percentage on every screen, and Wi-Fi on\/off from inside the app<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">PocketFlex is the older sibling of <a href=\"https:\/\/jackharvest.com\/index.php\/2026\/08\/01\/flipflex-plex-client-tcl-flip-phone\/\">FlipFlex<\/a>, which does the same job on a flip phone \u2014 this is where the Plex protocol knowledge came from. MIT licensed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Free and open source, and it\u2019s staying that way. If it saved you some time, you can <a href=\"https:\/\/www.buymeacoffee.com\/jackharvest\">buy me a coffee<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PocketFlex puts Plex on the Miyoo Mini Plus. It browses your libraries the way you browse ROMs, plays through the ffplay already on the card, and downloads films and episodes so you can watch with the Wi-Fi off.<\/p>\n","protected":false},"author":1,"featured_media":833,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"PocketFlex \u2013 Plex Client for Miyoo Mini Plus on OnionOS","_seopress_titles_desc":"Watch Plex on a Miyoo Mini Plus. PocketFlex browses your libraries like ROMs, transcodes to fit the screen, and downloads episodes for offline viewing. Free.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"Plex Miyoo Mini Plus,OnionOS Plex,Miyoo Mini Plex client,watch Plex on handheld,Miyoo Mini Plus video player","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[79,99,77],"tags":[104,101,105,102,88,100,103],"class_list":["post-797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gaming","category-media-servers","category-projects","tag-ffplay","tag-miyoo-mini-plus","tag-offline-downloads","tag-onionos","tag-open-source","tag-plex","tag-retro-handheld"],"_links":{"self":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/comments?post=797"}],"version-history":[{"count":2,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/797\/revisions"}],"predecessor-version":[{"id":823,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/797\/revisions\/823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/media\/833"}],"wp:attachment":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/media?parent=797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/categories?post=797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/tags?post=797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}