index
![]
TunaOS
Cloud-native, immutable desktop Linux images
One bootc-native desktop experience across Enterprise Linux and community distributions
🎃 Hacktoberfest 2026: We are participating! Looking for your first open-source PR? Check out our good first issues and join us on Matrix for maintainer office hours in October.
About TunaOS
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, while keeping the same image-based management model.
Visit tunaos.org or read the launch announcement.
- 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 just 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
Choose your image
| Variant | Base OS | Registry Path | Desktops | Architectures |
|---|---|---|---|---|
| 🐠 Yellowfin | AlmaLinux Kitten 10 | ghcr.io/tuna-os/yellowfin | GNOME, KDE, COSMIC, Niri | x86_64, x86_64/v2, arm64 |
| 🐟 Albacore | AlmaLinux 10 (RHEL 10) | ghcr.io/tuna-os/albacore | GNOME, KDE, COSMIC, Niri | x86_64, x86_64/v2, arm64 |
| 🍣 Skipjack | CentOS Stream 10 | ghcr.io/tuna-os/skipjack | GNOME, KDE, COSMIC, Niri | x86_64, arm64 |
| 🎣 Bonito | Fedora 44 | ghcr.io/tuna-os/bonito | GNOME, KDE, COSMIC, Niri | x86_64, arm64 |
| 🐦 Hummingbird | Fedora Hummingbird (experimental) | ghcr.io/tuna-os/hummingbird | Base, GNOME, COSMIC | x86_64; arm64 (base only) |
| 🎏 Wahoo | Fedora ELN — EL11 preview (experimental, no codecs) | ghcr.io/tuna-os/wahoo | Base, GNOME | 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, Niri, 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, XFCE | x86_64 |
| 🐡 Flounder | Debian 13 (Trixie) | ghcr.io/tuna-os/flounder | GNOME, KDE, COSMIC, Niri, XFCE | x86_64 |
| ☢️ Flounder Sid | Debian Sid (Unstable) | ghcr.io/tuna-os/flounder:*-sid | GNOME, KDE, COSMIC, Niri, XFCE | x86_64 |
| 🐉 Bonito Rawhide | Fedora Rawhide | ghcr.io/tuna-os/bonito:*-rawhide | GNOME, KDE, COSMIC, Niri, XFCE | x86_64, arm64 |
| 🦈 Sailfin | openSUSE Tumbleweed | ghcr.io/tuna-os/sailfin | GNOME, KDE, Niri, XFCE | x86_64 |
| 🌈 Guppy | Gentoo Linux | ghcr.io/tuna-os/guppy | GNOME, KDE | 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 |
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).
Live build matrix
Generated from the latest conclusive main-branch build for each variant (cancelled runs are skipped over). A cell is green when its image was successfully promoted to the published tag; failing means a job ran and failed; not reached means no job asserted the cell at all, usually because an earlier stage stopped it.
| Variant | Green image cells | Latest run | Failing | Not reached |
|---|---|---|---|---|
🐠 yellowfin | 9/20 | ❌ 2026-09-03 | — | gnome,cosmic,niri,gnome-hwe,gnome-nvidia,gnome-nvidia-hwe,cosmic-hwe,cosmic-nvidia,niri-hwe,niri-nvidia,xfce-nvidia |
🐟 albacore | 12/20 | ❌ 2026-09-03 | — | cosmic,niri,gnome-asahi,gnome-nvidia-hwe,cosmic-hwe,cosmic-nvidia,niri-hwe,niri-nvidia |
🍣 skipjack | 6/18 | ❌ 2026-09-02 | xfce | gnome,cosmic,niri,gnome-hwe,gnome-asahi,gnome-nvidia,gnome-nvidia-hwe,cosmic-hwe,cosmic-nvidia,niri-hwe,niri-nvidia |
🎏 wahoo | 3/4 | ❌ 2026-08-27 | — | cosmic |
🎣 bonito | 1/16 | ❌ 2026-09-03 | — | base,base-hwe,base-nvidia,gnome,cosmic,kde,niri,xfce,gnome-hwe,gnome-asahi,gnome-t2,gnome-nvidia,cosmic-nvidia,kde-nvidia,niri-nvidia |
🐦 hummingbird | 0/3 | ❌ 2026-09-03 | — | base,gnome,cosmic |
🦈 sailfin | 0/7 | ❌ 2026-09-02 | — | base,gnome,gnome-asahi,kde,niri,xfce,cosmic |
🌈 guppy | 3/4 | ❌ 2026-09-02 | — | kde |
🐉 bonito-rawhide | 4/14 | ❌ 2026-09-02 | — | base,base-hwe,base-nvidia,gnome,cosmic,kde,niri,xfce,cosmic-nvidia,niri-nvidia |
🐟 gurnard | 2/2 | ❌ 2026-09-03 | — | — |
🐟 grouper | 0/7 | ❌ 2026-09-02 | — | base,gnome,gnome-asahi,gnome-zfs,kde,cosmic,xfce |
🚀 marlin | 10/16 | ❌ 2026-09-02 | — | cosmic,niri,cosmic-cachyos,niri-cachyos,cosmic-nvidia,niri-nvidia |
🐡 flounder | 0/7 | ❌ 2026-09-02 | — | base,gnome,kde,xfce,gnome-nvidia,kde-nvidia,xfce-nvidia |
☢️ flounder-sid | 0/7 | ❌ 2026-09-03 | — | base,gnome,kde,xfce,gnome-nvidia,kde-nvidia,xfce-nvidia |
Sibling images, built in their own repositories. These are TunaOS-family bootc images built with BuildStream on freedesktop-sdk rather than from a distribution's packages, so they have no cells in the matrix above and are not scored by green-criteria.yml; each repository runs its own build, live-ISO, plain-install and LUKS-install checks. Status is that repository's latest completed main-branch build.
| Image | Built by | Desktop | Latest main build |
|---|---|---|---|
🏔️ ghcr.io/tuna-os/tromso | tromso | KDE | ❌ 2026-09-02 |
🐭 ghcr.io/tuna-os/xfce-linux | xfce-linux | XFCE | ❌ 2026-09-03 |
Built 50/145 · composite green 52/145 (34% built) — of the remainder, 1 failing and 94 never reached (no job asserted them). The two are reported separately on purpose: a never-reached cell is untested, not broken. Composite green counts published cells, per docs/MATRIX-STATUS.md and is scored against .github/green-criteria.yml, blocking today on boots, builds, desktop, no_silent_omissions — every one of those a cell must satisfy, with skipped and never-tested counting as not green. The full per-axis board is docs/MATRIX-STATUS.md. This is a point-in-time CI snapshot, not a support-tier promise.
Get started
-
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
Building media locally, verifying signatures and SBOMs, registry authentication, and pull troubleshooting: docs/INSTALL.md.
Contributing
Contributions welcome! See CONTRIBUTING.md for development
environment setup, the build workflow and pre-commit checklist, pull request
guidelines, and an architecture overview.
Community and support
- 🐛 Report Issues: GitHub Issues
- [m] Chat: #tunaos:reilly.asia
- 🎮 Discord: TunaOS
Related communities: Universal Blue Discord · AlmaLinux Atomic SIG
Documentation
Start here:
- User Guide — choosing an image, installing, updating, rolling back, apps, encryption
- Developer Guide — the whole pipeline and its plumbing, with diagrams
- Installation — building media, verification, registry access
- Hardware Support — requirements and ARM laptop status
- Matrix Status — which variant×desktop cells are verified, per quality axis
- Roadmap — project direction and feature status
- Vision — project philosophy
The full index — every guide, policy, and planning doc — is at docs/README.md.
Made by James in his free time
Powered by Bootc

This repository and many of the tuna-os repos are developed and maintained with Hive, an AI-driven development platform orchestrated via KubeStellar.
Inspired by Bluefin and the Universal Blue Community
Licensed under Apache 2.0