Source reference
The Abora OS repository, mapped.
Abora OS is a NixOS-based distribution built around reproducible system generations, a broad desktop matrix, ANIX system management, and shell-first tooling. This page is the fast architectural map of the stable Everest 4.0 repository.
Everest 4.0
Current stable codename
NixOS
Declarative system base
23 profiles
Desktop matrix
5 editions
ISO entry points
System shape
A reproducible OS with a visible control plane.
NixOS foundation
The flake declares inputs, outputs, edition-specific ISO builds, overlays, packages, checks, and development shells. System state is expressed as configuration and materialized as generations, keeping rollback as a first-class operation.
Desktop matrix
The repository keeps the full desktop matrix available at install time while also producing focused ISO editions for COSMIC, Hyprland, GNOME, KDE, and Other. Desktop profiles remain declarative rather than being hidden inside a GUI.
ANIX v2
ANIX is the system-management layer. Native ANIX, MKO, and ModuCPP inputs are normalized into the same plan representation before changes are applied, enabling diff-plan output and atomic, injection-safe operations.
GUI without a dependency
The GTK4/libadwaita welcome and configuration apps wrap commands that already exist. The graphical tools add discoverability, not exclusive functionality; the shell remains the source of truth.
ISO editions
Five focused ways into the same system.
Every edition still installs the complete desktop profile matrix. The focused images change the starting point and download experience, not the underlying capabilities.
Repository layout
Where to look when you need the real implementation.
flake.nix Flake inputs, outputs, editions, overlays, and development shells.
Makefile The documented build, test, QEMU, packaging, and release targets.
configuration/ NixOS system configurations and edition-specific entry points.
modules/ Reusable NixOS modules for the base system and Abora features.
packages/ Custom packages and overlays, including ANIX, TinyPM, and tooling.
scripts/ Shell entry points for installation, updates, recovery, testing, and release work.
installer/ MINT and the installer interfaces used to get a system onto disk.
docs/ Project checklists, wiki pages, roadmap notes, and build documentation.
Script map
Shell entry points are the operational API.
The scripts directory is intentionally explicit. Build, install, update, recovery, diagnostics, desktop selection, packaging, and release checks are separate traceable workflows rather than one opaque command.
abora.sh Main command dispatcher for the installed Abora system.
anix.sh ANIX profile, configuration, plan, package, and execution entry point.
abora-installer.sh Guided installation flow and installed system generation.
abora-update.sh Release fetch, validation, update, and installed-file synchronization.
abora-recovery.sh Rollback and recovery commands for an installed system.
abora-doctor.sh Diagnosis checks for common system and configuration problems.
abora-support-report.sh Collects useful system details for support and bug reports.
abora-desktop.sh Desktop selection and switching helper.
abora-desktop-profiles.sh Definitions and installer logic for the desktop matrix.
abora-ui.sh Shared shell UI, prompts, colors, and status output.
abora-config.sh Configuration helpers used by the command-line tooling.
abora-apps.sh Application installation and selection helper.
abora-hardware-test.sh Hardware validation and diagnostic helper.
build-iso.sh ISO build entry point.
run-qemu.sh Boot an ISO or installed image in QEMU for testing.
preflight.sh Checks required before build, install, or release work.
check-scripts.sh Shell syntax and safety validation.
check-desktops.sh Desktop profile validation.
release-metadata.sh Release version and metadata generation.
package-anix.sh ANIX packaging helper.
package-tinypm.sh TinyPM packaging helper.
Gaming layer
Optional gaming support brings Steam, Wine, Gamescope, MangoHud, controller support, launchers, and related hardware setup into the same declarative build model.
TinyPM and packaging
TinyPM is being rewritten in Rust, with image and package helpers in the repository. ANIX and TinyPM each have dedicated packaging and build paths instead of being treated as loose scripts.
MINT installer
MINT is the Go/Bubble Tea installer front-end. It is built as a package, while the current default installer remains the proven Bash TUI until the wiring is ready.
Release discipline
Stable and Edge channels, metadata generation, preflight checks, release manifests, QEMU validation, and support-report tooling make the release process inspectable before an ISO ships.
Suggested reading order
Start with README.md , then project-layout.md , Makefile , flake.nix , and the relevant script. For recovery work, read the repository recovery wiki before changing a system.