Skip to content

About

A modern, feature-rich YouTube and YouTube Music client with local recommendation for Desktop built with Rust and Tauri

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

265 stars

Watchers

4 watching

Forks

Flow Desktop. Privacy-first YouTube and YouTube Music for Windows, macOS and Linux.

A privacy-respecting YouTube and YouTube Music client with a native, fully local recommendation engine.

Flow Desktop is the desktop companion to Flow for Android, built with Rust, Tauri, React, and TypeScript.

Download for Windows Download for macOS Download for Linux Get it on FlatPark

Desktop: Windows · macOS · Linux Built with Rust · Tauri 2 License: GPL-3.0

Downloads · Android app · Community · Support development

Flow Desktop is under active development. Features and storage formats may change before the first stable release.


Features

  • Native video playback with quality and codec selection, SABR/DASH/HLS support, chapters, subtitles, playback speed, queues, mini-player, and Picture-in-Picture.
  • YouTube Music home, search, artists, albums, playlists, queue management, synchronized lyrics, repeat, shuffle, and equalizer controls.
  • A dedicated Shorts feed with comments, descriptions, saved Shorts, looping, auto-next, and timed scrolling modes.
  • Local subscriptions, playlists, Watch Later, likes, albums, video and music history, Continue Watching, and regional Explore feeds.
  • Channel pages with videos, Shorts, playlists, community posts, comments, and live chat support.
  • SponsorBlock, DeArrow, Return YouTube Dislike, and Discord Rich Presence integrations.
  • Imports from Flow backups, Google Takeout, NewPipe, LibreTube, FreeTube, and OPML.

FlowNeuro

FlowNeuro is Flow's native local recommendation engine. It learns from watches, skips, likes, dislikes, searches, topic preferences, and creator affinity, and ranks content on your device without sending a recommendation profile to a Flow server.

The Control Center lets you inspect topic weights, time-based patterns, channel memory, learning activity, and blocked content. You can export, import, reset, or temporarily pause learning with Deep Flow mode.


Privacy and security

  • No Google account is required, and Flow contains no advertising or analytics SDK.
  • History, settings, library data, and recommendation state are stored locally in SQLite.
  • Tauri permissions are restricted to the main window and the OS, dialog, and external-link capabilities the app uses.
  • A strict Content Security Policy blocks arbitrary scripts, frames, objects, and remote application code.
  • Rust validates search terms, video IDs, channel IDs, browse IDs, and continuation tokens before network requests.
  • Media is relayed through a tokenized loopback-only proxy instead of exposing a public local server.
  • BotGuard and PO-token handling run through a native hidden WebView, with a packaged Node script retained only as a compatibility fallback.

Flow still contacts YouTube and optional services such as SponsorBlock, DeArrow, Return YouTube Dislike, and configured lyrics providers when their features are used.


Downloads and supported systems

Release builds are published through GitHub Releases.

  • Stable: reviewed releases intended for normal use.
  • Beta / RC: public GitHub prereleases for wider testing. These install as Flow Beta with isolated application data.
  • Nightly: automatic snapshots from main. These install as Flow Nightly, use isolated data, and may be unstable. Download the latest packages from the Nightly release, which every new build replaces.
Platform Supported versions Architectures Packages
Windows Windows 10 22H2, Windows 11 x64, ARM64 NSIS installer
macOS macOS 13 Ventura or later Intel x64, Apple Silicon DMG
Linux Ubuntu 22.04+, Debian 12+, and comparable modern distributions x64, ARM64 AppImage, .deb, .rpm, Flatpak (FlatPark)

Linux builds require a compatible glibc, GTK 3, and WebKitGTK 4.1 environment. Legacy 32-bit systems are not supported. See docs/LINUX.md for which package to pick, graphics problems, codecs, sync and moving from Beta to Stable.

Opening Flow on macOS

Flow isn't signed with an Apple Developer ID or notarized yet, so the first launch is blocked with a message such as "Apple could not verify Flow is free of malware" or "Flow is damaged and can't be opened". To open it:

  1. Open the DMG and drag Flow into your Applications folder. Flow can only update itself from there.

  2. In Terminal, remove the download mark macOS puts on the app:

    xattr -dr com.apple.quarantine /Applications/Flow.app

    For a Beta or Nightly build, use "/Applications/Flow Beta.app" or "/Applications/Flow Nightly.app", with the quotes.

  3. Open Flow as usual.

Without Terminal: try to open Flow once, then go to System Settings > Privacy & Security, scroll down to the message about Flow and click Open Anyway. Updates Flow installs itself don't need this again.

Flatpak (FlatPark)

FlatPark offers Flow as a Flatpak. It downloads the official .deb from this repository's releases, unmodified, at install time, and runs it on the GNOME runtime with its codecs, so H.264, VP9 and AV1 all play. Updates come through Flatpak; Flow's own updater stays off there.

flatpak remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepo
flatpak install flatpark io.github.aedev.flow.desktop

FlatPark follows the latest GitHub release, betas included, and not the nightly builds. The packaging lives in the FlatPark registry, where packaging issues go.

Linux media codecs

On Linux, video decoding goes through WebKitGTK and the system GStreamer plugins (Windows and macOS ship their own decoders). If audio plays but video stays frozen on a spinner, a video decoder is missing.

  • AppImage — bundles the required GStreamer codec plugins (including gst-libav for H.264); no system codec packages are needed.
  • .deb — declares the codec plugins as dependencies. Install with sudo apt install ./Flow_*.deb so they are pulled in automatically.
  • .rpm — the freely licensed plugins are hard dependencies. On Fedora, a full H.264 decoder is only available through RPM Fusion for patent reasons (Fedora's own OpenH264 can't decode most YouTube video): enable RPM Fusion and run sudo dnf swap ffmpeg-free ffmpeg --allowerasing and sudo dnf install gstreamer1-plugin-libav, or use the AppImage instead. Without it, Flow plays VP9, which Fedora always has.

Linux startup crashes and blank windows

If the app opens to a blank or white window, that is usually the WebKitGTK DMABUF renderer failing on your graphics stack (common with NVIDIA proprietary drivers and some Wayland sessions). Flow disables it automatically and, if a launch still fails to render, escalates GPU workarounds on the next launch on its own: first forcing software compositing (WEBKIT_DISABLE_COMPOSITING_MODE=1), then falling back to X11/XWayland (GDK_BACKEND=x11). A clean launch resets this. You can still override any of these yourself — for example WEBKIT_DISABLE_DMABUF_RENDERER=0 to re-enable the DMABUF renderer.

If the app aborts on startup with Could not create default EGL display: EGL_BAD_PARAMETER (seen on some Arch-family / Mesa systems with the AppImage), that is a known Tauri AppImage packaging issue: a bundled libwayland client library conflicts with your system's newer Mesa/EGL stack. As an interim workaround, delete the bundled Wayland libraries and run the extracted app:

./Flow_*_linux_amd64.AppImage --appimage-extract
rm squashfs-root/usr/lib/*wayland*so*
./squashfs-root/AppRun

The .deb, .rpm and the FlatPark Flatpak use the system's or the runtime's own libraries and avoid this class of issue; prefer those when the AppImage fails.


Development

Requirements: Node.js 22.12+, pnpm 11.9+, stable Rust, and the Tauri 2 prerequisites for your operating system.

pnpm install --frozen-lockfile
pnpm tauri dev

Build packages for the current operating system:

pnpm test
pnpm build
pnpm tauri build

Windows, Linux, and macOS packages are built natively by the GitHub Actions release workflow. Production macOS and Windows releases should be signed and, on macOS, notarized before publication.


Support & donations

Flow is free and open-source software maintained by an independent developer. Patreon supports card, PayPal, Apple Pay, recurring support, and one-time tips.

Support Flow on Open Collective Support Flow on Patreon

You can also donate directly with crypto. Scan a QR code using a compatible wallet, or click it where custom wallet links are supported. The address and network are printed below every code — always verify both before sending.

USDT · TRC20

USDT TRC20 donation QR code

TRz7VDrTWwCLCfQmYBEJakqcZgbFNWfUMP
Bitcoin · BTC

Bitcoin donation QR code

bc1qgmkkxxvzvsymtpfazqfl93jw6k4jgy0xmrtnv8
Ethereum · ERC-20

Ethereum donation QR code

0xfbac6f464fec7fe458e318971a42ba45b305b70e
Solana · SOL

Solana donation QR code

7b3SLgiVPb8qQUvERSPGRWoFoiGEDvkFuY98M1GEngug
Monero · XMR

Monero donation QR code

8AgaxZnpEvT8VXJpczpL7BQejwSEw97saJmKYqq4zKErbe9bkYSwUhJ813msPPbdYhF11oz4N7tfEj4Zi6k27fKD83ca1if

Wallet URI support varies between wallet applications. Bitcoin, Ethereum, Solana, and Monero QR codes use their standard payment URI formats; the TRC20 code uses a Tron URI and may fall back to displaying the address in wallets that do not register the scheme.


License

Flow Desktop is free software licensed under the GNU General Public License v3.0.

This license requires that any project using Flow's source code, including the FlowNeuro engine, must also be released as open source under GPLv3. It may not be used in a proprietary or closed-source application.

Copyright © 2025–2026 A-EDev


Star History

Star history of Flow Desktop
Part of the Flow ecosystem

About

A modern, feature-rich YouTube and YouTube Music client with local recommendation for Desktop built with Rust and Tauri

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

265 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages