Every screen, in order, with the logic behind it.
The live init starts installer/install.sh automatically on the console. If the installer ever exits (say you decline to build), it drops you into an emergency shell rather than stranding you.
Because the ISO carries only the installer, connectivity is checked first. The probe hits a few hosts (1.1.1.1, github.com) with ping; if ping isn't there, it falls back to a TCP connect via nc.
[ keru ] network: connected ← online, straight to choices or, if offline: [ keru ] warning: network: not connected Connect to the network now (runs nmtui)? [Y/n] y (nmtui opens; you connect; press ok) [ keru ] network: connected
If you press n at the prompt, the installer exits with a network connection is required to install Keru. If you run nmtui and don't actually connect, the loop simply asks again — it never fakes success.
Each swappable is presented as a numbered menu. Pressing enter keeps the default; typing a number picks the option.
[ keru ] Keru OS — craft your system == Init system == 1) runit 2) s6 3) openrc 4) systemd 5) busybox-init 6) sysvinit 7) dinit 8) shepherd Select [runit]:
The same pattern repeats for C library, filesystem, kernel, privilege elevation, and network tools.
After the last pick, known-risky combinations are flagged. This is a warning, never a block — the philosophy of stable-on-what's-offered, never-lock-you-out.
[ keru ] warning: uclibc-ng + runit: not yet proven to build and boot together [ keru ] warning: this combination is unstable. Keru won't stop you — build at your own risk.
Your selections are written to a profile and shown back to you before anything builds:
[ keru ] writing /tmp/keru/make.conf
[ keru ] profile complete:
# Generated by keru-install — hand-tune then rebuild if you like.
INIT=runit
LIBC=glibc
TARGET_FS=btrfs
KERNEL=linux
SUDO=doas
NET=nmtui
LICENSE_ACCEPT=(*)
Build now? [y/N] y
Confirming hands the profile to the build pipeline, which runs in three stages:
binutils, gcc, your chosen libc, then the toolchain package. This is the from-scratch toolchain.BASE_PACKAGES set from your make.conf.mkfs-root.sh writes the chosen filesystem to the target root./tmp/keru/root matching your profile, ready to boot. Fixed at first boot — the system you designed.