Skip to content

Repository files navigation

Living Fractal

Describe a system in plain language. Get back a complete, documented NixOS configuration you can download, inspect, and boot.

Live at livingfractal.com

Living Fractal generator

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.


What it does

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.

Self-hosting

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:3120

For local development with auto-reload:

npm run dev

Environment variables

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

Stack

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.

Status

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.

Known limitations

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.

Feedback

Open an issue, or reach out on X: @mustard5

License

MIT

About

NixOS configuration generator prototype — plain language to complete, documented NixOS configs

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages