No description
  • Rust 97.5%
  • Nix 2.5%
Find a file
JMARyA 62224e81c7
Some checks failed
moira/ci moira/ci — failed
moira/publish moira/publish — failed
fix: emit tarball URL for nixpkgs -I pin, not a flake ref
The flake.lock pin was passed to classic `nix-shell -I nixpkgs=...` as a
flake ref (github:NixOS/nixpkgs/<rev>). Classic Nix's search path doesn't
understand flake refs and silently ignores them ("Nix search path entry
... does not exist, ignoring"), so `import <nixpkgs>` still failed.

Resolve github/gitlab inputs to their archive tarball URL and tarball
inputs to their url — all forms classic `nix-shell -I` can fetch and
resolve. Verified `nix-instantiate --find-file nixpkgs -I nixpkgs=<url>`
resolves to a store path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 22:00:38 +02:00
.moira/envs fix(ci): add skopeo containers policy for publishing to private registry 2026-05-12 09:29:18 +02:00
crates fix: emit tarball URL for nixpkgs -I pin, not a flake ref 2026-06-04 22:00:38 +02:00
docs feat: proper nix-daemon entrypoint, PVC nix store, NixOS module 2026-06-02 09:03:31 +02:00
k8s feat: proper nix-daemon entrypoint, PVC nix store, NixOS module 2026-06-02 09:03:31 +02:00
nix/modules fix: provide runtime PATH and CA bundle to agent NixOS service 2026-06-04 20:30:49 +02:00
.gitignore chore: gitignore agent workdir, remove accidentally staged nested repo 2026-04-24 20:37:10 +02:00
AGENTS.md docs: add AGENTS.md with full model/architecture reference, symlink CLAUDE.md 2026-05-31 06:01:00 +02:00
Cargo.lock fix: enable native-tls for agent WebSocket connections 2026-06-04 20:11:40 +02:00
Cargo.toml fix(ci): resolve all clippy errors blocking CI 2026-05-28 19:44:59 +02:00
CLAUDE.md docs: add AGENTS.md with full model/architecture reference, symlink CLAUDE.md 2026-05-31 06:01:00 +02:00
devenv.lock update devenv lock 2026-04-19 14:12:08 +02:00
devenv.nix add devenv postgres 2026-04-19 13:14:08 +02:00
flake.lock init 2026-04-18 06:32:11 +02:00
flake.nix feat: proper nix-daemon entrypoint, PVC nix store, NixOS module 2026-06-02 09:03:31 +02:00
README.md docs: link to moira-modules standard library 2026-05-23 01:24:41 +02:00
zensical.toml feat(nix-store): binary cache integration — substitution, push, and store isolation 2026-05-17 18:11:45 +02:00

Moira

Alpha software. Moira is under active development — interfaces, config schemas, and APIs may change without notice between commits. Run it, break it, report what you find, but don't depend on stability yet.

moira is a unified automation fabric for infrastructure engineers who believe the git repository is the only legitimate source of truth. It merges the concerns of CI pipelines, scheduled automation, workflow orchestration, and IaC execution into a single declarative system — hermetically sealed by Nix, driven by Rust, and accountable to nothing but your repo.


The mythology

Hydra builds moira.

In Hesiod's Theogony, the three Moirai — the Fates — are daughters of Nyx, the primordial goddess of night. They weave the thread of every mortal life: Clotho spins it into being, Lachesis measures its length, Atropos cuts it with inexorable finality.

Your infrastructure has the same shape. Intent is declared. Work is measured and scheduled. Execution is final, hermetic, irreversible. And it all runs on Nix — named, knowingly or not, for the same primordial darkness the Fates were born from.

Hydra — the many-headed — spawns Moira. Moira, daughters of Nyx, runs on Nix.

The lore wrote itself.

Internal architecture: the three sisters

The moira runtime is divided internally along the mythological grain:

Sister Role
Clotho (CLI) Git watcher and intent compiler — she reads your declared threads and spins them into executable task graphs
Lachesis (Server) Scheduler and reconciler — she measures, allots work to agents, manages approval gate state, and ensures reality converges to declaration
Atropos (Agent) Step executor — she cannot be turned aside; hermetic, deterministic, she runs the step and cuts the thread when done

These are internal names. Users interact only with moira.

Documentation

Full docs live in docs/. To serve locally:

zensical serve

Standard library

moira-modules — curated environments, typed modules (HTTP, git, S3, SSH, …), and reference threads. Import as a flake input and use directly in your pipelines.