index
![]
TunaOS
Cloud-native, immutable desktop Linux images
One bootc-native desktop experience across Enterprise Linux and community distributions
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 a community distribution for a faster release cadence, while keeping the same image-based management model.
Visit tunaos.org or read the launch announcement.
Features
- Modern Desktops: GNOME, KDE Plasma, COSMIC, and Niri — your choice, on Enterprise Linux
- Latest GNOME: Don't get stuck on a 3-year-old GNOME. We backport the latest desktop features to the Enterprise Desktop
- 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 Option: Hardware Enablement kernel for newer hardware support
- NVIDIA Option: NVIDIA drivers and CUDA for graphics and AI workflows
Images and variants
TunaOS provides a variety of bootc-based operating system images. Use the table below to choose your base distribution and desktop environment.
Live build matrix
Generated from the latest completed main-branch build for each variant. A cell is green when its image was successfully promoted to the published tag.
| Variant | Green image cells | Latest run | Blocked or failing tags |
|---|---|---|---|
🐠 yellowfin | 9/16 | ❌ 2026-07-14 | base,base-hwe,base-nvidia,gnome,cosmic,kde,niri |
🐟 albacore | 16/16 | ❌ 2026-07-14 | — |
🍣 skipjack | 15/15 | ❌ 2026-07-14 | — |
🎣 bonito | 14/14 | ❌ 2026-07-14 | — |
🦈 sailfin | 5/5 | ✅ 2026-07-14 | — |
🌈 guppy | 3/3 | ✅ 2026-07-14 | — |
🐉 bonito-rawhide | 13/14 | ❌ 2026-07-14 | gnome |
🐟 grouper | 4/6 | ❌ 2026-07-14 | gnome-zfs,niri |
🚀 marlin | 0/8 | ❌ 2026-07-15 | base,gnome,kde,cosmic,niri,xfce,gnome-cachyos,kde-cachyos |
🐡 flounder | 0/6 | ❌ 2026-07-15 | base,gnome,kde,cosmic,niri,xfce |
☢️ flounder-sid | 0/6 | ❌ 2026-07-15 | base,gnome,kde,cosmic,niri,xfce |
Current image coverage: 79/109 cells (72%). This is a point-in-time CI snapshot, not a support-tier promise.
| 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 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, Niri, XFCE | x86_64 |
| 🚀 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 |
[!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).
Suffix Rules (Image Tags)
Image tags are constructed as <desktop>[-hardware]:
-
Desktop Suffixes:
gnome: GNOME (stable)kde: KDE Plasmacosmic: COSMIC Desktopniri: Niri (tiling Wayland compositor)xfce: XFCE (Wayland experimental)base: Plain system image with no desktop environment pre-installed (available for most variants)
-
Hardware Suffixes (append to any desktop suffix):
- (none): Standard generic kernel build
-hwe: Hardware Enablement (newer kernel stack)-nvidia: NVIDIA drivers + CUDA pre-configured-nvidia-hwe: NVIDIA drivers on HWE kernel stack
Example tags: yellowfin:gnome-hwe, albacore:kde-nvidia, marlin:cosmic
System requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | x86_64, ARM64 | x86_64, ARM64 |
| RAM | 4 GB | 8 GB+ |
| Storage | 20 GB | 50 GB+ |
Installation
Use a pre-built ISO
Browse the currently published installation media on the download page:
Build your own ISO or VM image
In your browser — no tools, no root, nothing uploaded:
🛠️ tunaos.org/iso-builder — point it at any TunaOS image (or your own bootc image), pick your flatpaks, and it authors a bootable live ISO entirely in WebAssembly using the same tacklebox engine CI uses. User guide.
Or locally with tacklebox:
# ISO (requires root)
sudo tacklebox build --iso tunaos-yellowfin-gnome.iso \
--bootable-environment-image ghcr.io/tuna-os/yellowfin:gnome \
--bootable-environment-desktop gnome \
--output-base .build/iso
Or use the included helper script:
sudo ./scripts/build-iso-tacklebox.sh yellowfin gnome ghcr gnome
For QCOW2 VM images, use bootc directly:
# QCOW2 (VM image)
sudo bootc image build-to-qcow2 \
--output-format qcow2 \
ghcr.io/tuna-os/yellowfin:gnome
Switch an existing system
If you're already running a compatible bootc system:
sudo bootc switch ghcr.io/tuna-os/yellowfin:gnome
Container registry authentication
Images are published on GitHub Container Registry (GHCR). To pull images with bootc or podman:
# Authenticate to GHCR (requires a GitHub personal access token with read:packages scope)
echo "$GITHUB_TOKEN" | podman login ghcr.io -u YOUR_USERNAME --password-stdin
# Or use the GitHub CLI
gh auth token | podman login ghcr.io -u YOUR_USERNAME --password-stdin
See GitHub Container Registry docs for more details.
Contributing
Contributions welcome! See CONTRIBUTING.md for:
- Development environment setup
- Build workflow and pre-commit checklist
- Pull request guidelines
- Architecture overview
Community and support
- 🐛 Report Issues: GitHub Issues
- [m] Chat: #tunaos:reilly.asia
- 🎮 Discord: TunaOS
Related Communities:
- 🎮 Discord: Universal Blue Community
- 💬 AlmaLinux Atomic SIG: AlmaLinux Atomic SIG
Documentation
Project Docs
- TunaOS Blog — launch announcement and design philosophy comparison
- Contributor Guide — how to set up, build, and contribute
- Roll Your Own Guide — build your own custom TunaOS variant
- Agent Guide — complete architecture and contributor reference
- Build Pipeline — CI/CD workflow overview
- Testing Guide — ISO end-to-end test harness
- Secure Boot — which variants support Secure Boot out of the box
- Improvement Plan — roadmap and development progress
- Redfin Setup — RHEL 10 local-build instructions
- Developer Docs — build and contribution guide
Policies & Planning
- Roadmap — project direction and feature status
- Versioning — tag scheme and stability tiers
- Migration Guide — switching from other distros
- Security Policy — vulnerability reporting and supported versions
- Adopters — organizations using TunaOS
- Code of Conduct — community standards
Community & Governance
- Community — contribution ladder, metrics, communication
- Maintainers — maintainer playbook and bus factor plan
External Resources
Made by James in his free time
Powered by Bootc

🤖 Powered by KubeStellar / Hive
This repository and many of the tuna-os repositories are developed and maintained using Hive — an AI-driven development platform orchestrated via KubeStellar.
Hive deploys a suite of specialized AI agents (guide, architect, sec-check, quality, ci-maintainer, strategist) onto a local Kubernetes cluster. These agents triage issues, implement fixes, review PRs, manage CI pipelines, and maintain documentation — all working autonomously through GitHub.
Every commit, PR, and issue in this repo benefits from multi-agent collaboration coordinated through Hive.
Learn more: hanthor/hive | KubeStellar
Inspired by Bluefin and the Universal Blue Community
Licensed under Apache 2.0