Comparison
Several projects put a graphical interface in front of NixOS configuration. Comparing them feature by feature is not very illuminating, because they are not really the same kind of thing. Three axes separate them cleanly.
Where the schema comes from
nix-module-form + module-schema -- Nix module options are converted to JSON Schema, and a renderer consumes the schema generically. The two halves live in separate repositories on purpose, so either is reusable without the other.
clan -- the same direction,
in one tree. clanLib.jsonschema is a genuinely generic Nix-to-JSON-Schema
converter, and clan's own blog post demos feeding its output to a generic form
builder. The shipped clan-app, however, renders hand-written SolidJS
components validated by hand-written valibot schemas, not the schema
generically.
nixos-conf-editor -- no
JSON Schema at all. It reads nixosOptionsDoc-style options.json and picks a
widget by string-matching the human-readable Nix type ("null or boolean"),
falling back to a raw Nix expression editor for anything it cannot place.
thymis -- inverted. Modules and their
settings are declared in Python, with UI-oriented types (textarea-code,
select-one, secret, systemd-timer). Nix is an output of the tool, not its
input.
What actually ships
clan, nixos-conf-editor and thymis each ship an application. None of them ships a reusable renderer you can drop into someone else's page.
That is the differentiator here: nix-module-form is a Vue + JSONForms widget bundle against a plain JSON Schema, with no opinion about the surrounding application. On clan's side the reusable piece is the converter rather than the UI.
Who owns the deploy step
- clan and thymis own provisioning and deployment for a fleet of machines: inventory, secrets, remote installs.
- nixos-conf-editor owns
nixos-rebuildfor one local host. - nix-module-form owns none of it. It renders a deploy-vs-baseline diff and hands the edited value back; what deploying means is the embedder's decision. None of the other three model a diff against a last-deployed baseline at form level, which is the workflow this widget is built around.
Also in this space
- nix-gui -- closest in spirit: a generic editor driven by NixOS option metadata. Abandoned since 2022.
- nixos-search -- the canonical
options.jsonconsumer, but read-only; it browses options rather than editing them.
Maturity
Stated plainly: clan and thymis are actively developed and vastly broader in scope than this repository; if you want a fleet-management application, they are what you want. nixos-conf-editor is dormant. nix-module-form is young and deliberately narrow -- one widget, one job -- with exactly one real-world consumer today, the fediversity panel.