ROSI is a cross-platform GUI for yt-dlp, built with Tauri V2.
See ARCHITECTURE.md and build-setup.md.
ROSI 5 moves from Electron to Tauri V2 with a Rust backend. It uses the system webview, so installers and memory use are much smaller.
- ROSI 5 is a new app: the app identifier is now
run.rosie.rosi, so the v4 updater cannot install it directly. v4.4.0 and later offer an in-app upgrade that installs ROSI 5, removes v4, and imports v4's settings, queue, lifetime stats, and download activity on first launch. v4's data folder is kept. Versions before v4.4.0 must update to v4.4.0 first. - The in-app upgrade from v4 to v5 is only available on macOS 26. ROSI 5 itself runs on macOS 15 or later (Apple went from macOS 15 to macOS 26), so on macOS 15 install ROSI 5 manually. The in-app upgrade also needs Windows 10 version 2004 (build 19041) or later. On other systems, install ROSI 5 manually.
- The in-app updater has stable and beta channels (Settings > Update
channel).
autofollows the installed version. - Linux ships an x64 AppImage and a sideloaded Flatpak. DEB and RPM packages are no longer built or published. Linux ARM64 is not supported in v5; the build wiring remains available for future development. The Flatpak bundles Node.js for yt-dlp's YouTube JavaScript runtime, so it does not need Deno on the host.
- macOS 15 or later (universal build for Intel and Apple silicon). The bundled FFmpeg is built for macOS 15.
- Windows 10 version 2004 (build 19041) or later, on x64 or ARM64, with the Microsoft Edge WebView2 runtime (installed automatically when missing).
- Linux x64 with WebKitGTK 4.1 (Ubuntu 24.04+, Debian 13+, Fedora 43+, or a compatible distribution).
- ROSI includes the official yt-dlp binary, which on its own uses the Unlicense; the standalone binary bundles third-party packages. Read THIRD-PARTY-NOTICES for more.
- The licenses view in the app lists every npm package and Rust crate compiled into ROSI, plus the exact bundled yt-dlp and FFmpeg notices.
- Please also read the license for the source of this project (excluding third-party binaries and packages).
Official ROSI builds bundle FFmpeg per platform and architecture. When building
from source, place FFmpeg binaries in resources/ffmpeg/<platform>/<arch>/
(or run npm run get:ffmpeg) before packaging. See
resources/ffmpeg/README.md for the required
layout. You can optionally set a custom FFmpeg path in Settings to override the
bundled binary.
The Microsoft Store build uses the same codebase: npm run build:msstore
builds an MSIX bundle with the Store channel, which hides the in-app updater.
See the Microsoft Store section of build-setup.md.
- Download the source of a release (non-release sources may contain unfixed issues) and unzip it somewhere convenient.
- Install Node.js (with npm 12) and Rust, plus the platform prerequisites in build-setup.md.
npm install- Development:
npm run tauri:dev(uses non-functional FFmpeg stubs when FFmpeg is not present; point Settings > FFmpeg path at a local FFmpeg to convert). - Packaged builds:
- Windows:
npm run build:win - macOS:
npm run build:mac:universal, thennpm run build:mac:zip - Linux x64:
npm run build:linux(ornpm run build:linux:x64) - Linux ARM64 (native ARM64 hardware only):
npm run build:linux:arm64 - Flatpak:
npm run flatpak:bundle
- Windows:
Release builds refuse FFmpeg stubs.
npm run test:all runs type checking, lint, formatting, policy validators,
Vitest, Clippy, Rust tests, and the WebdriverIO E2E suite against the real app
and bundled yt-dlp sidecar. npm run test:e2e runs only the E2E suite and
writes a reproducible evidence report to
e2e/artifacts/e2e-report-<platform>-<arch>.json.
Releases follow the same destructive, VM-based pipeline as Zinnia. See build-setup.md and docs/RELEASE-STABLE.md.
- Beta: on each release VM run
npm run b, thennpm run release:win,npm run release:mac(orrelease:mac:ssh), ornpm run release:linux:x64. - Stable:
npm run r, then the same platform commands. - Beta signing publishes
latest-*-beta-*.jsononto the latest stable release so beta clients update immediately. After the draft is complete, runnpm run release:verify:draft, thennpm run release:publishandnpm run release:verify:published.
There is an LTS version of the previous stable full release of ROSI (v3.x.x)
at ➡️ROSI-LTS's Repo.
This is mainly for people who prefer the previous look of ROSI, or have an issue with a newly released major version. The LTS version only provides yt-dlp updates and minor bug fixes.
If there is an issue with the program, feel free to create a GitHub Issue! For other issues/general contact, please go to https://help.rosie.run/contact.






