SAPHIRA LINUX
It's so Simple it Hurts.
A small, focused Linux distribution built from scratch with musl and APK — choose OpenRC or systemd.
Agent-friendly by design. OpenCode, Codex, Claude Code and the wider agent family are welcome here — and pip lets you do what you want.
- Earlybird Beta
- GCC 16.1.0
- ~481 APK packages
- x86-64-v3
- musl libc
- OpenRC
- APK
- KVM/QEMU
- Repository live
Native BitNet is now shipped in the Hatchling repository
bitnet-cpp installs as a native musl/x86-64-v3 package. CPU inference is proven on Hatchling without CUDA, Conda, or a Python virtual environment.
The normal tools are llama-cli, llama-server and llama-quantize; BitNet helper Python tooling is system-wide and works with Saphira Python 3.14. Models are available separately rather than bundled in the APK; official I2_S GGUF files run directly without setup_env.py.
On Hatchling's 7-vCPU test VM, the reference model observed roughly 160–190 t/s prompt processing and 25–27 t/s generation. Those are recorded test figures, not general performance claims. The 2B reference model is deliberately small and does not represent larger or smarter models.
NVIDIA Open kernel modules are now in hatchling
nvidia-open 610.57.04 is available from the hatchling repository, with the matching GSP firmware on the pure-musl Saphira host.
Milestone 1 is proven on Hatchling without a GPU: the module loads, NVRM initialises, PCI probing correctly reports no NVIDIA device, and the driver unwinds cleanly.
The prepared USB-safe RTX 3060 / GA106 test on Homer is still pending. CUDA and NVIDIA proprietary userspace are planned only inside a glibc systemd-nspawn container — the proposed N-Spawn of Saphira — with an exact release match and the required /dev/nvidia* device nodes passed through. That container design is not tested yet.
7.1.5 and 7.2.2: two new Saphira kernels are live in the hatchling repository
Both kernels are built and signed by Saphira and published to the hatchling package stream — where every package in every stream is signed, without exception. The hardware net widens well beyond the virtual machine.
Support now reaches Intel Coffee Lake, the N100 and the i9-13900K, alongside the existing KVM/VirtIO target. The config work behind that: USB UAS, Intel igc ethernet, WLAN, PPPoE, IPVS and HTB, with IOMMUFD and PSAMPLE enabled.
Intel Coffee Lake
igc ethernet and the platform pieces this generation needs.
Intel N100
Alder Lake-N boards gain the same ethernet and platform support.
i9-13900K
Raptor Lake — the development host's own silicon, proven by building on it.
KVM / VirtIO
The original tested target remains first-class.
Wireless arrives properly: iw and wireless-tools ship in the repository, and the wireless regulatory database is signed with Saphira's own key, alongside Saphira-signed kernel modules. Trust is ours, not borrowed.
hostapd is not packaged yet — that is the next brick in the wireless wall. The 7.1.5 kernel already boots Saphira on the hatched machine in 3.4 seconds, with no initramfs.
Saphira-d has booted systemd
Boot proof is in: the non-usr-merged Saphira Linux systemd sibling booted successfully today on homer, the i9 development machine, from a UAS USB NVMe device.
systemd-nspawn booted the image, reached multi-user.target and graphical.target, and presented a Saphira Linux 0.1 login prompt. systemd-logind failed during this first nspawn boot; that is expected cleanup for this stage and did not prevent the system reaching its targets.
The systemd packages are in the repository awaiting signing. The next step is a simple apk install systemd path cleanup to remove the remaining old OpenRC pieces, followed by images later today.
Saphira-d is in development
Saphira now has a systemd sibling. Not a replacement — a question.
Saphira-d is not OpenRC's retirement notice. We did not decide OpenRC was wrong, we are not converting Saphira to systemd, and this is not 'the next version'. OpenRC Saphira remains the distribution people already know and run. The experiment is narrower and more interesting: take the same source-built, musl-based, deliberately understandable Saphira philosophy and find out whether its character survives when the init and service layer is systemd instead of OpenRC.
Systemd is not a novelty we are chasing. A great deal of current Linux software assumes or integrates with it, and that is a real part of the expectations a modern distribution has to meet. Rather than bolt systemd into the existing Saphira tree and quietly redefine what 'Saphira' means, we built a separate sibling path with its own build tree.
Keeping the two separate is the whole point. It lets us change the init and service stack without silently redefining the OpenRC distribution people already rely on, and it lets the two eventually be compared against the same broad philosophy instead of argued about.
Saphira
musl + OpenRC — the distribution people already know and run
Saphira-d
musl + systemd — the same philosophy, a different init and service layer
What we are trying to learn
- what systemd genuinely requires to build and run on musl;
- the extra dependency chain it pulls in;
- the functionality it returns in exchange;
- what happens to image size and system complexity;
- how current systemd behaves on musl in practice;
- whether the result stays understandable from toolchain to boot to service start;
- which differences are inherent and which are merely conventional wisdom.
OpenRC does not have to lose for Saphira-d to succeed, and systemd does not have to lose for Saphira to remain worthwhile. We are building both so the differences can be observed rather than asserted. Saphira-d is not a complete distribution yet — no proven full build and first boot — but the source-built three-stage path is being built now.
The original Saphira Linux
The Saphira Linux people already know and run: a small, source-built musl distribution with OpenRC and APK.
This is the original Saphira Linux release line. It keeps the service management simple and inspectable with OpenRC, while the systemd work continues separately in Saphira-d as an experiment rather than a replacement.
Saphira Linux remains the practical OpenRC edition for focused servers: traditional init, a familiar Linux layout, and packages built for the system you are actually running.
Architecture direction
Saphira defaults to x86-64-v3 today, and that choice is deliberate: modern hardware should be allowed to compile against a modern instruction set instead of being held back to the oldest common denominator. But 'modern default' is not the same as 'only thing we will ever build'. Older x86-64 machines have not stopped being useful, and some of them — Sandy Bridge, Ivy Bridge, even Nehalem-era boxes — are still perfectly good at focused server jobs. We still have those machines here, so this is a plan we can actually test rather than a processor-history footnote.
So the builder is being designed around selectable compiler baselines, not a single monolithic target. x86-64-v1, v2, v3 and v4 are build/compiler profiles, not separate distributions and not identical binaries with different labels. A Sandy Bridge machine gets a build suited to Sandy Bridge; an x86-64-v3 server stays an x86-64-v3 build; future v4 hardware can use v4 without dragging everyone else along. Supporting older hardware does not mean holding newer hardware back, and vice versa.
The same idea reaches backwards into 32-bit and forwards off x86 entirely. i686 is coming back, and a genuine i586 userspace baseline is now being developed — not i686 quietly requiring SSE and calling itself i586. It reaches into ARM: AArch64 is the first step that proves the source-built model is not secretly welded to x86, starting with real Raspberry Pi hardware.
Modern x86 by default. Older hardware remembered. ARM starts with Raspberry Pi 4.
One honest caveat: the builder is intended to know about x86-64-v4, but we do not yet have v4 hardware here to validate native builds and runtime behaviour. Builder capability and tested images are different states — we would rather say 'not tested here yet' than turn a compiler flag into a support claim. Suitable hardware donations are, of course, politely welcome.
Release telemetry
Numbers from the repository and release API. No vanity counters.
- APK packages
- 481
- Earlybird downloads
- —
- Total downloads
- —
- Current release
- Earlybird
- Build toolchain
- GCC 16.1.0
- Repository status
- Live
Yes. Saphira is hosting Saphira.
This website is served from a Saphira Linux virtual machine running a real Node.js SSR application on musl, managed by OpenRC, installed from the same APK repository you can use. It is not a demonstration environment. It is the distribution doing a real job.
What is Saphira?
A from-scratch Linux distribution. Not a respin of Debian, Ubuntu, Alpine or Arch.
musl libc
coreOpenRC
initAPK
packagesLinux + GRUB
bootx86-64-v3
baselineGCC 16.2.0
toolchain (dev)Why simple?
Linux does not have to become more complicated every year.
Simplicity here is an engineering constraint, not a shortage of features. Fewer layers means fewer places for a failure to hide, a boot sequence you can follow end to end, and a package set you can actually account for. Simple does not mean incapable.
Built in stages, from source
-
Stage0
Bootstrap toolchain
-
Stage1
Native toolchain
-
Stage2
Root filesystem
-
Stage3
Base build image
-
Stage4 packages
Profiled APK builds
-
Stage4 image
Image generation
-
Image
Validated & bootable
Package repository
481 packages for x86_64, served over TLS.
# /etc/apk/repositories
https://packages.akadata.ltd/saphira/main
apk update
apk search nginx
apk add nginx
Browse the package index →View Stage4 build profiles →Open the raw repository →
Virtualisation
KVM/QEMU is the primary tested target. Other compatible virtualisation platforms are expected to work as support is broadened.
KVM/QEMU
primaryXen
expectedVMware
expectedVirtualBox
expectedBare metal is not the initial target. The Earlybird image is designed and tested for virtual machines. That remains true for Earlybird; physical x86-64, WRAP and Raspberry Pi hardware is an active roadmap direction — see the architecture roadmap.
Current release and known issues
Saphira works. That does not mean every corner has stopped biting.
-
First-boot setup
WorkingThe Earlybird image includes guided setup for the root password, normal user, full name, user password, IPv4 and IPv6 addresses with gateways, DNS selection, an optional search domain, and APK repository configuration.
- DNS providers: Quad9, Cloudflare, OpenDNS / Cisco Umbrella, or custom DNS.
- The setup applies the configuration, updates the repository file, copies /etc/skel profile files into root and the new user's home, and drops to a shell ready for apk use.
-
Package quality fixes
In progressEarlybird is a real beta release and package-level issues are still being corrected through actual use.
- Examples include runtime dependency fixes, package split corrections, service script fixes, library SONAME corrections, and configuration packaging fixes.
- A current example is PHP SQLite support: when a dependency is missing, runtime symbols usually identify what needs to be added with apk add.
- The packaging is fixed where possible rather than documenting permanent workarounds.
-
GCC 16.2.0 toolchain migration
In progressThe development tree is migrating to GCC 16.2.0 with broader native language support and musl-specific compatibility work. The released Earlybird Beta and Bootstrap images shipped on GCC 16.1.0.
- Once the native compiler and toolchain are proven, the full distribution will be rebuilt cleanly from the beginning.
-
Installation tooling
In progressThe current image can already be imported into a hypervisor and configured through the guided first-boot setup.
- A more complete TUI installation path for installing Saphira onto target disks is planned.
-
Desktop support
Not plannedSaphira is a server operating system. There are no project plans for X11, Wayland, Plasma, or graphical installation.
- Nothing prevents users from packaging or building those themselves.
-
NVIDIA Open kernel modules
Staged for testingnvidia-open 610.57.04 and matching GSP firmware are staged in hatchling for the pure-musl host. The no-GPU Hatchling load, initialisation, no-device PCI probe, and clean unwind are proven; real RTX 3060 / GA106 testing on Homer remains pending.
- Saphira does not install CUDA, glibc, or NVIDIA proprietary userspace on the host.
- The planned CUDA route is a glibc systemd-nspawn container with NVIDIA userspace exactly matching the host module release and required /dev/nvidia* nodes passed through. It is not yet tested.
Toolchain roadmap
GCC 16.2.0
in progress (dev)Found a problem?
Beta software benefits from people who write things down. Report bugs, ask compatibility questions, or tell us what broke on your hypervisor.