Every game you own, on Linux, in one fast native launcher.
heronite-demo-github.mp4
Note
Windows support is coming soon. Heronite runs on Linux today, and a Windows version is on the way.
Heronite brings your games from Steam, Epic Games, GOG, Amazon Games, Battle.net, EA app, Ubisoft Connect, and Rockstar Games, plus emulated, native Linux, and Windows games, into one Collection. It launches them through Wine/Proton or an emulator, records every session, and stays light on your PC as a native Rust app (GPUI, GPU rendered).
- Collection: a list with a details panel (Focus) or a grid of covers. Group by status, store, genre, series, year and more. The details show screenshots, How Long To Beat, ProtonDB and anti-cheat status, achievements, and a play timeline.
- Journal: notes on the days you played and on your screenshots, and where you left off.
- Views: filter, sort, and save presets (Playing now, Backlog, Finished, Favourites). Search forgives accents and typos.
- Bulk edits: change many games at once, with undo; rename and merge genres, companies, and series.
- Command palette: Ctrl K opens any page, runs any action, or plays a game.
- Add any game: native Linux and Windows programs, browser games, install scripts, or ROM folders. Art from Steam, SteamGridDB, IGDB, Lutris, the web, or your screenshots. On first run, Heronite finds your Steam library, emulators, and ROM folders by itself.
![]() Collection |
![]() Command palette |
- Epic Games, GOG, and Amazon Games: log in from Heronite. One download queue installs, updates, repairs, moves, imports, and uninstalls; it pauses offline and retries failed downloads.
- Steam: your library comes in by itself, no login needed.
- Battle.net, EA app, Ubisoft Connect, and Rockstar Games: Heronite sets up each store's own app in a Wine prefix of its own. The games you install there show up in your Collection and start from it.
- Other launchers: bring in the games of Heroic, Lutris, Bottles, and Faugus, and keep them in sync.
- Wine and Proton: per-game Wine version and prefix, DXVK-NVAPI, Esync/Fsync, gamescope, FPS limit, GPU choice, DLSS/FSR/XeSS upgrades, Winetricks, umu protonfixes, and Lossless Scaling frame generation (lsfg-vk).
- Wine Manager: download and update Proton-CachyOS, GE-Proton, DW-Proton, UMU-Proton, Proton-EM, and Proton-Sarek, and manage prefixes.
- Launching: follow and cancel each step, run scripts before and after, programs alongside, and your own actions next to Play.
- Sandbox: run a game you do not trust through bubblewrap, with no network and no access to your home folder. Let one thing through when it needs more.
- Emulators: detect installed emulators or add your own with RetroArch cores, scan ROM folders, and continue from save states.
- In-game overlay (beta): the controller's Guide button opens volume, microphone, FPS limit, screenshots, and journal notes over the game.
- Replay (off by default): keep the last seconds of play and save them as a moment with Guide + X, recorded on the GPU by gpu-screen-recorder.
![]() Game settings |
![]() Wine Manager |
- Statistics: play time by week, month, year, or all time in five tabs: Overview, Journeys, Backlog (a yearly goal of games to beat), Discoveries, and Album.
- Year in review: your year as full-screen stories, with a card to share.
- Sessions: every launch is recorded, screenshots are matched to the game, and sessions can be edited.
![]() Overview |
![]() Year in review |
![]() Backlog |
A controller-first layout for the couch or a TV, with an on-screen keyboard and a Power menu. Turn it on from the palette, the ☰ menu, or with --console.
- Themes: change every part of it, live from the couch or in Settings → Console mode: up to four tabs with their own layout (Shelves, Spotlight, Cinema, Dashboard, Grid, Wheel, Carousel, Series X), covers, background, colours, fonts, button glyphs, menus, and game pages.
- Share them: seven built-in themes (Minimal, Classic, Cinema, Pulse, Arcade, Hub, Living room). Export your own to a
.heronite-theme.jsonfile and import it anywhere. - Light when off: nothing of it loads while console mode is off. It can open at startup or when a controller connects.
![]() Home |
![]() Game page |
- Appearance: dark or light theme (or the desktop's), accent colour (or the game's), fonts, density, cover style, and a background picture or slideshow.
- Language: English, Portuguese (Brazil), Spanish, and German, following the system by default.
- Saves and backups: Ludusavi save backups after each session, and scheduled backups of your Collection, history, settings, and art.
- Storage: see what your games take on each disk and clean up leftovers.
- Startup: start with the system, and launch games from
heronite://launchlinks or--launch.
![]() Appearance |
![]() Storage |
![]() Backups |
![]() Screenshots |
A single native process that draws its UI on the GPU, with no bundled browser engine. When idle, it does almost no work.
| Heronite | |
|---|---|
| Memory while idle | ~190 MB in a single process, ~95 MB closed to the tray |
| CPU while idle | ~0.1% (0.05 s of CPU time over 60 s) |
| Install size | 64 MB (app + store login helper) |
| Start to library on screen | ~215 ms median |
Everything stays on your machine, in Heroic-compatible files under ~/.local/share/heronite/ (or HERONITE_DATA_DIR). An existing Heroic setup is copied once on first start; Heroic's folders are never written to. IGDB metadata needs your Twitch client ID and secret in Settings → Metadata.
Every release has an AppImage and packages for Debian/Ubuntu, Fedora/openSUSE, and Arch:
| System | File | Install |
|---|---|---|
| Any distribution (recommended) | Heronite-x86_64.AppImage |
chmod +x Heronite-x86_64.AppImage && ./Heronite-x86_64.AppImage |
| Debian 12+, Ubuntu 22.04+, Mint, Pop!_OS | heronite_<version>-1_amd64.deb |
sudo apt install ./heronite_*_amd64.deb |
| Fedora 36+, openSUSE | heronite-<version>-1.x86_64.rpm |
sudo dnf install ./heronite-*.x86_64.rpm |
| Arch, Manjaro, EndeavourOS, CachyOS | heronite-<version>-1-x86_64.pkg.tar.zst |
sudo pacman -U heronite-*-x86_64.pkg.tar.zst |
Heronite updates itself, and every download is checked against its signing key. Keep the AppImage in a writable folder (like ~/Applications) so it can update in place.
You need stable Rust, clang and lld, a Vulkan driver, and GTK/WebKitGTK. Heronite downloads legendary, gogdl, and nile itself; Ludusavi is optional.
# quick build (the login window is its own binary, so build it too)
cargo build --profile quick -p heronite-epic-login && cargo run --profile quick -p heronite
# release build, installed for the current user
scripts/install.shA Cargo workspace: app/ is the GPUI binary, crates/ holds the GPUI-free libraries, and heronite-epic-login is the separate store login window.
cargo fmt --all
cargo clippy --workspace --all-targets
cargo test --workspaceSee ARCHITECTURE.md, CODE-STYLE.md, and UI-CONVENTIONS.md. To release, merge a pull request labelled release:patch, release:minor, or release:major. Issues and pull requests are welcome.
Copyright (C) 2026 Rafael Goulart
Licensed under the GNU General Public License v3.0. Third-party components keep their own licenses; see THIRD-PARTY-NOTICES.md.












