Describe a system in plain language. Get back a complete, documented NixOS configuration you can download, inspect, and boot.
Live at livingfractal.com
This is an early prototype. Configurations are generated by a language model and require review before you trust them with real hardware. We say that plainly on the site and mean it. Read the manifesto for the full picture of what we're building and why.
You describe the machine and the role — hardware, intended use, privacy requirements, services you want running. The generator translates that into a configuration.nix file along with plain-language documentation explaining every decision it made on your behalf.
Because this is NixOS, the generated file is the system. One readable document. Reproducible. Versionable. Yours.
The generation toolchain is open source by design. If Living Fractal goes away, or changes in a direction you disagree with, you can run the whole pipeline yourself.
Requirements: Node.js 22+, an OpenRouter API key.
git clone https://github.com/Mustard5/livingfractal.com.git
cd livingfractal.com
cp .env.example .env # add your OPENROUTER_API_KEY
npm install
npm start
# Open http://localhost:3120For local development with auto-reload:
npm run dev| Variable | Required | Default | Purpose |
|---|---|---|---|
OPENROUTER_API_KEY |
Yes | — | OpenRouter API key |
LF_MODEL |
No | deepseek/deepseek-v4-flash |
Model string passed to OpenRouter |
LF_PORT |
No | 3120 |
Server port |
LF_DATA_DIR |
No | /var/lib/livingfractal |
Directory for SQLite session database |
LF_ALLOWED_ORIGIN |
No | https://livingfractal.com |
Permitted browser origin for CORS |
LF_ADMIN_TOKEN |
No | — | Bearer token for admin API |
Node.js/Express backend, SQLite session logging, prompt versioning with hot-reload. No frontend framework — plain HTML. Generation goes via OpenRouter to whatever model is configured.
This is a prototype. The validation layer that grounds output against the real nixpkgs package and option database is partially built. Hallucinated package names and incorrect option paths are possible. Test generated configs in a virtual machine before deploying to real hardware.
Progress is being made in the open. Follow along or try to break it — both are useful.
Slow on complex prompts. Dense descriptions with many requirements (custom window manager, full disk encryption, multiple services, security hardening) can take a couple of minutes to generate, since the server validates the result against the nixpkgs database and regenerates if needed. The page shows a progress indicator and waits for the result — it no longer times out.
Intermittent model refusals. The model occasionally responds to a valid prompt with a one-line refusal instead of generating a configuration. This is a fluke on the model provider's side, not a problem with your input. Retrying immediately almost always succeeds.
Open an issue, or reach out on X: @mustard5
