One desktop experience with bootc across Enterprise Linux and community distributions
π Hacktoberfest 2026: Join us! Is this your first open-source PR? See our good first issues. You can also join the office hours for maintainers in October on Matrix.
TunaOS builds bootc-based desktop operating systems with atomic updates and straightforward rollbacks. Choose an Enterprise Linux base for long-term stability or an alternative distribution for a faster release cadence. Both choices use the same image-based management model.
Visit tunaos.org or read the User Guide.
- Modern Desktops: GNOME, KDE Plasma, COSMIC, Niri, and XFCE β equal first-class options across distribution bases
- Up-to-Date Desktop Stack: Fresh desktop features and updates backported to Enterprise and community bases
- Homebrew: Baked into the image β all your CLI apps and fonts are a
brewcommand away - Flathub by Default: Full Flathub access out of the box β get any Flatpak available on the net
- HWE and NVIDIA Options: Hardware Enablement kernels and NVIDIA drivers + CUDA as image tags
| Variant | Base OS | Registry Path | Desktops | Architectures |
|---|---|---|---|---|
| π Yellowfin | AlmaLinux Kitten 10 | ghcr.io/tuna-os/yellowfin |
GNOME (x86_64 only, see note), KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE | x86_64, x86_64/v2, arm64 |
| π Albacore | AlmaLinux 10 (RHEL 10) | ghcr.io/tuna-os/albacore |
GNOME (x86_64 only, see note), KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE | x86_64, x86_64/v2, arm64 |
| π£ Skipjack | CentOS Stream 10 | ghcr.io/tuna-os/skipjack |
GNOME (x86_64 only, see note), KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE | x86_64, arm64 |
| π£ Bonito | Fedora 44 | ghcr.io/tuna-os/bonito |
GNOME, KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE | x86_64, arm64 |
| π¦ Hummingbird | Fedora Hummingbird (experimental) | ghcr.io/tuna-os/hummingbird |
Base, GNOME, COSMIC | x86_64 (see note) |
| π Wahoo | Fedora ELN β EL11 preview (experimental, no codecs) | ghcr.io/tuna-os/wahoo |
Base, GNOME, KDE, COSMIC, Tuna (x86_64 only) | x86_64, arm64 |
| π Redfin | Red Hat Enterprise Linux 10 | Local-Build Only | GNOME, KDE, COSMIC, Niri, XFCE | x86_64, arm64 |
| πͺΈ Grouper | Ubuntu 26.04 | ghcr.io/tuna-os/grouper |
GNOME, KDE, COSMIC, Tuna, XFCE | x86_64 |
| π€ Gurnard | Ubuntu 24.04 (Noble Numbat, experimental) | ghcr.io/tuna-os/gurnard |
Base, Pantheon | x86_64, arm64 |
| π Marlin | Arch Linux (Rolling) | ghcr.io/tuna-os/marlin |
GNOME, KDE, COSMIC, Niri, Tuna, XFCE | x86_64 |
| π‘ Flounder | Debian 13 (Trixie) | ghcr.io/tuna-os/flounder |
KDE, Tuna, XFCE | x86_64 |
| β’οΈ Flounder Sid | Debian Sid (Unstable) | ghcr.io/tuna-os/flounder:*-sid |
GNOME, KDE, Tuna, XFCE | x86_64 |
| π Bonito Rawhide | Fedora Rawhide | ghcr.io/tuna-os/bonito:*-rawhide |
GNOME, KDE, COSMIC, Niri, Tuna (x86_64 only), XFCE | x86_64, arm64 |
| β΅ Sailfin | openSUSE Tumbleweed | ghcr.io/tuna-os/sailfin |
GNOME, KDE, COSMIC, Niri, Tuna, XFCE | x86_64 |
| π Guppy | Gentoo Linux | ghcr.io/tuna-os/guppy |
GNOME, KDE, XFCE | x86_64 |
| ποΈ TromsΓΈ | freedesktop-sdk (BuildStream), built in tuna-os/tromso | ghcr.io/tuna-os/tromso |
KDE | x86_64 |
| π XFCE Linux | freedesktop-sdk (BuildStream), built in tuna-os/xfce-linux | ghcr.io/tuna-os/xfce-linux |
XFCE | x86_64 |
GNOME on the EL10 variants comes from the tunaOS GNOME 50 package tier.
GitHub Actions builds this tier without COPR. The tier supports only x86_64
today, so the gnome and gnome-hwe images have only x86_64 support.
The gnome-asahi image is off until the tier adds aarch64
(tunaos-packages#673).
Every GNOME image uses GNOME 50 or newer. The project does not promote older versions.
Hummingbird is x86_64 only. This includes its base. The aarch64 package
snapshot has no xfsprogs, and the base stage needs it. No hummingbird arm64
image builds today. The architecture is absent, not thinner. See
docs/HUMMINGBIRD.md.
Tags are <desktop>[-hardware] β e.g. yellowfin:gnome-hwe,
albacore:kde-nvidia. Full tag reference: docs/IMAGE-TAGS.md.
Hardware requirements and ARM laptop status: docs/HARDWARE.md.
Note
Redfin (RHEL 10) is local-build only due to EULA restrictions. To build it locally, run just build redfin <desktop> (see rhel-setup.md).
The configured matrix now has 147 image cells. Eleven of them are Tuna Desktop (formerly Roost) cells for amd64: marlin:tuna, yellowfin:tuna, albacore:tuna, skipjack:tuna, wahoo:tuna, bonito:tuna, bonito:tuna-rawhide, grouper:tuna, flounder:tuna, flounder:tuna-sid and sailfin:tuna. The tuna_rollout record in tunaos.toml gives each other variant its reason to stay unsupported. The guppy:gnome cell is back (2026-10-07, #2450). The former marlin:roost tags get no more updates; existing installs must follow the explicit switch and recovery procedure. The status snapshot below is from before those additions and does not prove image publication or a successful boot. Tuna Desktop adds no ISO or LUKS cells.
Each cell reports the newest conclusive main-branch run that asserted it, so a flavor-filtered rebuild does not blank the cells it never scheduled. This table omits cancelled runs. Latest run names the variant's newest conclusive run. A green cell has a successful promotion to the published tag. Failed means that a job ran and failed. Not reached means that no recent run asserted the cell, usually because an earlier stage stopped it.
| Variant | Green image cells | Latest run | Failing | Not reached |
|---|---|---|---|---|
π yellowfin |
19/19 | β 2026-10-20 | β | β |
π albacore |
19/19 | β 2026-10-20 | β | β |
π£ skipjack |
17/17 | β 2026-10-19 | β | β |
π wahoo |
4/5 | β 2026-10-16 | tuna | β |
π£ bonito |
17/17 | β 2026-10-19 | β | β |
π¦ hummingbird |
1/3 | β 2026-10-15 | gnome | cosmic |
β΅ sailfin |
7/7 | β 2026-10-19 | β | β |
π guppy |
3/4 | β 2026-10-20 | β | gnome |
π bonito-rawhide |
13/15 | β 2026-10-19 | tuna | gnome |
π€ gurnard |
2/2 | β 2026-10-20 | β | β |
πͺΈ grouper |
8/8 | β 2026-10-19 | β | β |
π marlin |
17/17 | β 2026-10-19 | β | β |
π‘ flounder |
6/6 | β 2026-10-20 | β | β |
β’οΈ flounder-sid |
5/8 | β 2026-10-20 | β | gnome-nvidia,kde-nvidia,xfce-nvidia |
Sibling images from separate repositories. These TunaOS-family bootc images use BuildStream on freedesktop-sdk. They do not use packages from a distribution. Thus, the matrix above has no cells for them, and green-criteria.yml does not score them. Each repository runs its own checks for the build, live ISO, plain installation, and LUKS installation. The status shows the latest complete build from the main branch of that repository.
| Image | Built by | Desktop | Latest main build |
|---|---|---|---|
ποΈ ghcr.io/tuna-os/tromso |
tromso | KDE | β 2026-10-19 |
π ghcr.io/tuna-os/xfce-linux |
xfce-linux | XFCE | β 2026-10-18 |
Built 138/147 Β· composite green 124/147 (93% built) β The remainder has 3 failures and 6 never reached (stale: 5); no job asserted the latter. We show the two values separately. A cell with no job has no test, but it can still work.
The score for composite green uses published cells, per docs/MATRIX-STATUS.md. .github/green-criteria.yml provides the score. Today, these criteria prevent publication: boots, builds, desktop, no_silent_omissions, parity. A cell must satisfy each criterion.
Skipped cells and cells with no test do not count as green. The full per-axis board is docs/MATRIX-STATUS.md. This snapshot of CI shows one point in time. It does not promise a support tier.
-
Install from an ISO: π¦ tunaos.org/download
-
Install from Windows (no USB drive needed): πͺ wootc installer (download from releases / read the Migration Guide)
-
Build your own ISO in the browser: π οΈ tunaos.org/iso-builder
-
Switch an existing bootc system:
sudo bootc switch ghcr.io/tuna-os/yellowfin:gnome
For local media builds, signature and SBOM checks, registry authentication, and pull help, read docs/INSTALL.md.
Your machine runs one task at a time using your signed-in AI coding CLI. The relay alternates between eligible School (OS) and Reef (apps) hives after each task. If one hive has no work, the other can continue.
The guide covers prerequisites, verified just setup, credentials, provider
costs, and how to stop with Ctrl+C. Your subscription quota or API charges apply.
Never post account credentials or API keys in issues or pull requests.
Contribute through Hive to donate time with your AI CLI.
Contributions welcome! See CONTRIBUTING.md for development
environment setup, the build workflow and pre-commit checklist, pull request
guidelines, and an architecture overview.
- Contribute through Hive: Donate time with your AI CLI
- π Report Issues: GitHub Issues
- [m] Chat: #tunaos:reilly.asia
- π¬ Questions and ideas: GitHub Discussions
Related communities: Universal Blue Discord Β· AlmaLinux Atomic SIG
Start here:
- User Guide β image choice, installation, updates, rollback, apps, and encryption
- Developer Guide β the complete pipeline with architecture diagrams
- Installation β media builds, verification, and registry access
- Hardware Support β requirements and ARM laptop status
- Matrix Status β quality status for each variantΓdesktop cell
- Roadmap β project direction and feature status
- Vision β project philosophy
The full index of every guide, policy, and project plan is at docs/README.md.
Made by James in his free time
Powered by Bootc
Inspired by Bluefin and the Universal Blue Community
Licensed under Apache 2.0