🪐 nix world
  • Rust 76.5%
  • Nix 16%
  • CSS 3.5%
  • Fluent 3%
  • Shell 0.5%
  • Other 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
JMARyA 00accd17ce
Some checks failed
moira/flake/checks.comin-secure-boot@x86_64-linux checks.comin-secure-boot — queued
moira/flake/checks.desktop-appimage@x86_64-linux checks.desktop-appimage — queued
moira/flake/checks.desktop-fonts@x86_64-linux checks.desktop-fonts — queued
moira/flake/checks.desktop-handlers@x86_64-linux checks.desktop-handlers — queued
moira/flake/checks.disk@x86_64-linux checks.disk — queued
moira/flake/checks.docs@x86_64-linux checks.docs — building
moira/flake/checks.docs-reference-tests@x86_64-linux checks.docs-reference-tests — build failed
moira/flake/checks.enabled-ai@x86_64-linux checks.enabled-ai — queued
moira/flake/checks.enabled-apps@x86_64-linux checks.enabled-apps — queued
moira/flake/checks.enabled-base-pkg@x86_64-linux checks.enabled-base-pkg — queued
moira/flake/checks.enabled-bcachefs@x86_64-linux checks.enabled-bcachefs — queued
moira/flake/checks.enabled-bluetooth@x86_64-linux checks.enabled-bluetooth — queued
moira/flake/checks.enabled-camera@x86_64-linux checks.enabled-camera — queued
moira/flake/checks.enabled-comin@x86_64-linux checks.enabled-comin — queued
moira/flake/checks.enabled-console@x86_64-linux checks.enabled-console — queued
moira/flake/checks.enabled-desktop@x86_64-linux checks.enabled-desktop — queued
moira/flake/checks.enabled-dev@x86_64-linux checks.enabled-dev — queued
moira/threads moira/threads — definitions compiled
moira/flake/env.expr.00ba2ecc9f1cefed@x86_64-linux env.expr.00ba2ecc9f1cefed — built
moira/flake/packages.docs@x86_64-linux packages.docs — building
moira/flake/packages.docs-reference@x86_64-linux packages.docs-reference — queued
moira/flake/packages.handy@x86_64-linux packages.handy — built
moira/flake/packages.orca-ide@x86_64-linux packages.orca-ide — queued
moira/flake/packages.qq@x86_64-linux packages.qq — built
moira/flake/packages.ripgrep-all@x86_64-linux packages.ripgrep-all — built
moira/flake/packages.shinra@x86_64-linux packages.shinra — already in the cache
moira/flake/packages.shinra-app@x86_64-linux packages.shinra-app — already in the cache
moira/flake/packages.tagctl@x86_64-linux packages.tagctl — queued
moira/flake/packages.tomb@x86_64-linux packages.tomb — built
moira/flake/checks.apps@x86_64-linux checks.apps — queued
moira/flake/checks.automation@x86_64-linux checks.automation — queued
moira/flake/checks.enabled-ollama@x86_64-linux checks.enabled-ollama — queued
moira/flake/checks.enabled-orca@x86_64-linux checks.enabled-orca — queued
moira/flake/checks.enabled-os-release@x86_64-linux checks.enabled-os-release — queued
moira/flake/checks.enabled-phone@x86_64-linux checks.enabled-phone — queued
moira/flake/checks.enabled-gaming@x86_64-linux checks.enabled-gaming — queued
moira/flake/checks.enabled-libvirt@x86_64-linux checks.enabled-libvirt — queued
moira/flake/checks.enabled-media@x86_64-linux checks.enabled-media — queued
moira/flake/checks.enabled-nix@x86_64-linux checks.enabled-nix — queued
moira/flake/checks.enabled-nix-ld@x86_64-linux checks.enabled-nix-ld — queued
moira/flake/checks.enabled-node-exporter@x86_64-linux checks.enabled-node-exporter — queued
moira/flake/checks.enabled-plymouth@x86_64-linux checks.enabled-plymouth — queued
moira/flake/checks.enabled-podman@x86_64-linux checks.enabled-podman — queued
moira/flake/checks.enabled-power@x86_64-linux checks.enabled-power — queued
moira/flake/checks.enabled-region@x86_64-linux checks.enabled-region — queued
moira/flake/checks.enabled-responsive@x86_64-linux checks.enabled-responsive — queued
moira/flake/checks.enabled-router@x86_64-linux checks.enabled-router — queued
moira/flake/checks.enabled-secure-boot@x86_64-linux checks.enabled-secure-boot — queued
moira/flake/checks.enabled-seed@x86_64-linux checks.enabled-seed — queued
moira/flake/checks.enabled-server@x86_64-linux checks.enabled-server — building
moira/flake/checks.enabled-shinra-app@x86_64-linux checks.enabled-shinra-app — queued
moira/flake/checks.enabled-shinra-cli@x86_64-linux checks.enabled-shinra-cli — queued
moira/flake/checks.enabled-sound@x86_64-linux checks.enabled-sound — queued
moira/flake/checks.enabled-ssh@x86_64-linux checks.enabled-ssh — queued
moira/flake/checks.enabled-static-eth@x86_64-linux checks.enabled-static-eth — queued
moira/flake/checks.enabled-sysadmin@x86_64-linux checks.enabled-sysadmin — queued
moira/flake/checks.enabled-tablet@x86_64-linux checks.enabled-tablet — queued
moira/flake/checks.enabled-tv@x86_64-linux checks.enabled-tv — queued
moira/flake/checks.enabled-vm-guest@x86_64-linux checks.enabled-vm-guest — queued
moira/flake/checks.enabled-wireguard@x86_64-linux checks.enabled-wireguard — queued
moira/flake/checks.enabled-wlan@x86_64-linux checks.enabled-wlan — queued
moira/flake/checks.enabled-zram@x86_64-linux checks.enabled-zram — queued
moira/flake/checks.enabled-zswap@x86_64-linux checks.enabled-zswap — queued
moira/flake/checks.fleet-api@x86_64-linux checks.fleet-api — queued
moira/flake/checks.format@x86_64-linux checks.format — built
moira/flake/checks.install@x86_64-linux checks.install — queued
moira/flake/checks.live@x86_64-linux checks.live — queued
moira/flake/checks.module-ai@x86_64-linux checks.module-ai — queued
moira/flake/checks.module-apps@x86_64-linux checks.module-apps — queued
moira/flake/checks.module-base-pkg@x86_64-linux checks.module-base-pkg — queued
moira/flake/checks.module-bcachefs@x86_64-linux checks.module-bcachefs — queued
moira/flake/checks.module-bluetooth@x86_64-linux checks.module-bluetooth — queued
moira/flake/checks.module-camera@x86_64-linux checks.module-camera — queued
moira/flake/checks.module-comin@x86_64-linux checks.module-comin — queued
moira/flake/checks.module-console@x86_64-linux checks.module-console — queued
moira/flake/checks.module-desktop@x86_64-linux checks.module-desktop — queued
moira/flake/checks.module-dev@x86_64-linux checks.module-dev — queued
moira/flake/checks.module-disk@x86_64-linux checks.module-disk — queued
moira/flake/checks.module-disk-encryption@x86_64-linux checks.module-disk-encryption — queued
moira/flake/checks.module-facter@x86_64-linux checks.module-facter — queued
moira/flake/checks.module-gaming@x86_64-linux checks.module-gaming — queued
moira/flake/checks.module-libvirt@x86_64-linux checks.module-libvirt — queued
moira/flake/checks.module-media@x86_64-linux checks.module-media — queued
moira/flake/checks.module-nix@x86_64-linux checks.module-nix — queued
moira/flake/checks.module-nix-ld@x86_64-linux checks.module-nix-ld — queued
moira/flake/checks.module-node-exporter@x86_64-linux checks.module-node-exporter — queued
moira/flake/checks.module-ollama@x86_64-linux checks.module-ollama — queued
moira/flake/checks.module-orca@x86_64-linux checks.module-orca — queued
moira/flake/checks.module-os-release@x86_64-linux checks.module-os-release — queued
moira/flake/checks.module-phone@x86_64-linux checks.module-phone — queued
moira/flake/checks.module-plymouth@x86_64-linux checks.module-plymouth — queued
moira/flake/checks.module-podman@x86_64-linux checks.module-podman — queued
moira/flake/checks.module-power@x86_64-linux checks.module-power — queued
moira/flake/checks.module-region@x86_64-linux checks.module-region — queued
moira/flake/checks.module-responsive@x86_64-linux checks.module-responsive — queued
moira/flake/checks.module-router@x86_64-linux checks.module-router — queued
moira/flake/checks.module-secure-boot@x86_64-linux checks.module-secure-boot — queued
moira/flake/checks.module-seed@x86_64-linux checks.module-seed — queued
moira/flake/checks.module-server@x86_64-linux checks.module-server — queued
moira/flake/checks.module-shinra-app@x86_64-linux checks.module-shinra-app — queued
moira/flake/checks.module-shinra-cli@x86_64-linux checks.module-shinra-cli — queued
moira/flake/checks.module-sound@x86_64-linux checks.module-sound — queued
moira/flake/checks.module-ssh@x86_64-linux checks.module-ssh — queued
moira/flake/checks.module-static-eth@x86_64-linux checks.module-static-eth — queued
moira/flake/checks.module-sysadmin@x86_64-linux checks.module-sysadmin — queued
moira/flake/checks.module-tablet@x86_64-linux checks.module-tablet — queued
moira/flake/checks.module-tv@x86_64-linux checks.module-tv — queued
moira/flake/checks.module-vm-guest@x86_64-linux checks.module-vm-guest — queued
moira/flake/checks.module-wireguard@x86_64-linux checks.module-wireguard — queued
moira/flake/checks.module-wlan@x86_64-linux checks.module-wlan — queued
moira/flake/checks.module-zram@x86_64-linux checks.module-zram — queued
moira/flake/checks.module-zswap@x86_64-linux checks.module-zswap — queued
moira/flake/checks.moira-update@x86_64-linux checks.moira-update — queued
moira/flake/checks.os-release@x86_64-linux checks.os-release — queued
moira/flake/checks.region@x86_64-linux checks.region — queued
moira/flake/checks.region-keymaps@x86_64-linux checks.region-keymaps — queued
moira/flake/checks.rust-lint@x86_64-linux checks.rust-lint — build failed
moira/flake/checks.seed@x86_64-linux checks.seed — queued
moira/flake/checks.shinra@x86_64-linux checks.shinra — already in the cache
moira/flake/checks.shinra-app@x86_64-linux checks.shinra-app — already in the cache
moira/flake/checks.solo-template@x86_64-linux checks.solo-template — queued
moira/flake/nixosConfigurations.live@x86_64-linux nixosConfigurations.live — building
moira/live-iso moira/live-iso — succeeded
feat(nix): a desktop that keeps moving under load
The responsive capability, on by default in the desktop class. The
compositor and shell outrank applications for CPU and I/O and are
protected from reclaim; MGLRU's min_ttl_ms and systemd-oomd on user
slices kill a runaway application before the machine thrashes;
scx_lavd and preempt=full favour latency-critical tasks; Nix builds
run at idle priority.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:57:33 +02:00
.claude chore(openspec): initialise OpenSpec with Claude Code skills 2026-10-14 17:50:56 +02:00
assets fix(assets): the mark belongs to the whole product, not to Plymouth 2026-09-27 05:48:52 +02:00
crates Revert "feat(app): reopen on the repository page after a pull" 2026-10-16 11:22:38 +02:00
docs feat(nix): a desktop that keeps moving under load 2026-10-16 13:57:33 +02:00
nix feat(nix): a desktop that keeps moving under load 2026-10-16 13:57:33 +02:00
openspec feat(nix): a desktop that keeps moving under load 2026-10-16 13:57:33 +02:00
.gitignore docs: build the site with Zensical and generate the reference from Nix 2026-09-20 16:41:41 +02:00
flake.lock chore(deps): the flake's inputs, where upstream is today 2026-10-11 06:01:40 +02:00
flake.nix feat(ci): the repository's own moira threads, and a weekly bump 2026-10-11 04:18:28 +02:00
justfile feat(live): the ISO is a package 2026-10-11 04:18:28 +02:00
README.md docs: 26 capability modules, Orca's included 2026-10-14 18:49:44 +02:00
renovate.json feat(ci): the repository's own moira threads, and a weekly bump 2026-10-11 04:18:28 +02:00
zensical.toml feat(update): what an update does to every machine, said once per change 2026-10-11 02:22:48 +02:00

Shinra

森羅万象 — shinra banshō: all things, everything under the sun.

One declarative substrate. Every computer you own.

Shinra is an open NixOS ecosystem for declaring your entire computing
environment — not one machine at a time, but all of them, in one repository you
control. A desktop, a server, a TV, a console, a router: each is a different
composition of the same foundation.

Change the declaration, push it, and every machine converges on the new
generation atomically, with a rollback that works.

Coherence without captivity. Opinionated defaults at the surface, ordinary
NixOS underneath. No mandatory cloud, account, central server, or hosted Git.

Principles

  • Locally autonomous — connectivity enhances a machine; it does not complete it.
  • User-owned — you keep authority over configuration, hardware, data, keys,
    software, and infrastructure.
  • Declarative and inspectable — change the system through reviewable
    declarations, builds, and generations, never accumulated mutations.
  • Composable — classes give defaults, capabilities add functionality,
    profiles supply workflows. Host decisions stay yours.
  • Compose before inventing — use the good software that exists; invent only
    the missing abstractions.
  • Honest about safety — controlled change reduces accidental breakage. It
    does not make every valid configuration safe, or backups optional.

What is here

Pillar Contents
Device classes desktop, server, tv, console, router (+ phone/tablet stubs)
Capabilities 26 capability modules: ai, wireguard, secure-boot, comin, camera, …
Packages 4 curated additions to nixpkgs
Library munix microVMs, OCI containers, docs builders

Plus a 67-model AI catalogue with pinned revisions, Fleet host discovery, and a
generated option reference built from evaluated Nix metadata.

Use Shinra

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    shinra.url = "git+https://git.hydrar.de/shinra/shinra";
  };

  outputs = { nixpkgs, shinra, ... }@inputs: {
    nixosConfigurations.workstation = nixpkgs.lib.nixosSystem {
      specialArgs = { inherit inputs; };
      modules = [
        shinra.nixosModules.desktop
        shinra.nixosModules.dev
        shinra.nixosModules.ssh
        ./hardware-configuration.nix
        {
          nixpkgs.hostPlatform = "x86_64-linux";
          profiles.desktop.enable = true;
          profiles.ssh.enable = true;
          profiles.dev = {
            enable = true;
            useRust = true;
          };
          system.stateVersion = "25.05";
        }
        ./configuration.nix
      ];
    };
  };
}

A composition example, not an installer: bring your own users, boot and storage
configuration, and host settings. Keep an existing machine's system.stateVersion
unchanged. Importing a module only declares its options; each one waits for its
enable, and a class turns on the capabilities it is built from.

Documentation

Built with Zensical. Class and module reference pages are generated from
evaluated Nix option metadata — types, defaults, examples, and source links.

nix build .#docs           # static site in result/
nix develop
just docs-serve            # generate reference, then preview locally

Public surfaces

Export Purpose
nixosModules Device classes, capabilities, and workflow profiles
darwinModules.comin macOS deployment; Shinra is otherwise Linux-oriented
flakeModules.fleet / flakeModules.default Host discovery via shinra.fleet
packages.<system> Curated packages, docs, and docs-reference
overlays.default The same packages as an ordinary nixpkgs overlay
lib System, container, munix/microVM, and documentation helpers
nixosConfigurations.live Live ISO entry point
checks Formatting, docs, fleet API, and Linux module evaluation

Flake systems: x86_64-linux, aarch64-linux, aarch64-darwin. NixOS
configurations target Linux; a listed package system is not a support guarantee
for every package.

Edgecore is a sibling project: a
declarative device agent exposing capabilities through W3C Web of Things,
with HTTP interactions and local discovery.

Shinra describes what a computer should be. Edgecore describes how to
interact with what a device provides
. Neither requires the other — see
the architectural relationship.

Development

nix develop
just fmt
nix flake check
just build-live

Source layout: crates/ — the model, the command and the app, in
Rust; nix/modules/ — classes, capabilities, roles and
the system every class builds on; nix/packages/,
nix/lib/, nix/fleet/, nix/hosts/live/,
nix/templates/solo/ and nix/tests/; assets/ — the mark, which the
docs, the boot splash and the app share; and docs/.

The Shinra app is the graphical face of the shinra command. On the
live ISO it opens as the guided install: five screens that produce a
declaration and hand it to shinra install run. The system
app
is what it shows, and its design is where it is going.

Shinra is alpha. The roadmap says exactly what is built and
what is not.