- Rust 76.5%
- Nix 16%
- CSS 3.5%
- Fluent 3%
- Shell 0.5%
- Other 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
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
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> |
||
| .claude | ||
| assets | ||
| crates | ||
| docs | ||
| nix | ||
| openspec | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| README.md | ||
| renovate.json | ||
| zensical.toml | ||
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.
- Getting started and device classes
- Concepts and architecture
- Vision
- One push, every device
- Fleet, Live, and AI
- Status and roadmap
- Building the docs
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.
Related project: Edgecore
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.