A minimal, no-nonsense desktop client for Stremio addons.
Native Qt 6 interface, its own Rust playback engine, and none of the Electron weight.
Features · Screenshots · Install · Build from source · Development · Architecture
|
|
|
|
|
|
Note
No torrent engine, on purpose. Gravitas plays direct HTTP/HLS links only. Torrents are resolved upstream, by the addon itself or by a debrid service (Real-Debrid, AllDebrid, TorBox, Premiumize, …).
Every push to the release branch builds all platforms into a single rolling release.
| Platform | Download | Notes |
|---|---|---|
| Linux | Gravitas-*.AppImage · Gravitas.flatpak |
libmpv and yt-dlp bundled |
| macOS | Gravitas.dmg |
Rust engine bundled; ad-hoc signed: right-click → Open on first launch |
| Windows 10/11 (x64) | Gravitas-Setup.exe |
Per-user install, no admin needed; registers stremio:// links |
| Windows 10/11 (x64) | Gravitas-windows-x64.zip |
Portable: unzip and run gravitas.exe (no stremio:// handler) |
# Flatpak
flatpak install --user ./Gravitas.flatpak
flatpak run dev.skyline.GravitasWindows SmartScreen warning
The Windows binaries are not code-signed, so SmartScreen shows "Windows protected your PC" on first run. Click More info → Run anyway.
Where Gravitas keeps its files
| Linux / macOS | Windows | |
|---|---|---|
| Settings | $XDG_CONFIG_HOME/gravitas |
%APPDATA%\Gravitas |
| Progress and watchlist | $XDG_DATA_HOME/gravitas |
%LOCALAPPDATA%\Gravitas |
| Caches (artwork, addon JSON) | $XDG_CACHE_HOME/gravitas |
%LOCALAPPDATA%\Gravitas\Cache |
-
Python ≥ 3.12 and uv
-
A graphical session (X11, Wayland or a Windows desktop)
-
libmpv, a system library rather than a pip package. It is needed for the mpv player, and as a fallback when the Rust engine is not built:
OS Command Fedora sudo dnf install mpv-libsDebian / Ubuntu sudo apt install libmpv2macOS brew install mpvWindows Get libmpv-2.dllfrom an mpv-dev build, then put its folder on%PATH%or pointGRAVITAS_LIBMPVat it -
Optional:
yt-dlponPATHfor YouTube-backed streams and trailers -
Optional, for the Rust engine: a Rust toolchain, plus FFmpeg, libplacebo and libass development packages (see
native/player/README.md)
uv sync # install dependencies into .venv
uv run python scripts/build_native_player.py # optional: build the Rust engine
uv run gravitas # launchOn first launch, Gravitas installs Cinemeta and fills the home screen from its catalogs. Add more addons in onboarding or under Settings → Addons.
uv run --with pyinstaller pyinstaller packaging/gravitas.spec --noconfirmThis produces dist/Gravitas/ (Linux, Windows) or dist/Gravitas.app (macOS), with libmpv and yt-dlp inside. Then:
| Target | Command |
|---|---|
| AppImage | bash packaging/build_appimage.sh |
| Flatpak | bash packaging/build_flatpak.sh |
| macOS dmg | create-dmg (see release.yml) |
| Windows installer | iscc packaging\windows\gravitas.iss (Inno Setup 6) |
On Windows the spec downloads libmpv-2.dll and yt-dlp.exe itself; unpacking the mpv archive needs 7-Zip or py7zr. Set GRAVITAS_LIBMPV to skip the download.
uv run pytest -q # test suite (offline by design)
uv run ruff check . # lint
uv run ruff format --check . # format
uv run mypy src # strict type check
# the Rust engine's own checks
(cd native/player && cargo clippy --workspace --all-targets && cargo test --workspace)The code follows Clean Architecture, and each layer may depend only in the direction of the arrows:
presentation → application → domain ← infrastructure
Qt / QML use cases pure httpx, mpv,
models Rust engine
CLAUDE.md holds the architecture notes and contributor guidance, including the platform quirks behind the design. native/player/README.md documents the playback engine's design and roadmap.
MIT © Ö. Efe D. (skyline69)
Gravitas is an independent project and is not affiliated with Stremio. The format logos under qml/formats/ are trademarks of their respective owners.

