Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

vic/flake-file

Generate flake.nix from module options. Input and Output schemas. Works with flakes, unflake, npins or nixlock.

vic/flake-file.json
{
"defaultBranch": "main",
"description": "Generate flake.nix from module options. Input and Output schemas. Works with flakes, unflake, npins or nixlock.",
"fullName": "vic/flake-file",
"homepage": "http://flake-file.oeiuwq.com/",
"language": "Nix",
"name": "flake-file",
"pushedAt": "2026-03-16T05:10:23Z",
"stargazersCount": 93,
"updatedAt": "2026-03-20T20:37:59Z",
"url": "https://github.com/vic/flake-file"
}

Sponsor Vic Dendritic Nix CI Status License

Non-static Nix on your flake inputs! Define custom output schemas.

Section titled “Non-static Nix on your flake inputs! Define custom output schemas.”

flake-file and vic’s dendritic libs made for you with Love++ and AI—. If you like my work, consider sponsoring

flake-file lets you generate a clean, maintainable flake.nix from Nix module options. Use the real Nix language to define your inputs.

It makes your flake definition base on the Nix module system.

This means

  • You can use lib.mkDefault or anything you normally do with the Nix language, and have them reflected in flake.nix.
  • Your inputs follow a typed Input Schema.
  • Your outputs can be defined on a typed Output Schema [example]!(templates/minimal/flake-file.nix).

Despite the original flake-oriented name, it NOW also works on stable Nix, non-flakes environments via [npins]!(templates/npins), [unflake]!(templates/unflake), nixlock

  • Flake definition aggregated from Nix modules.
  • Input and Output schemas based on Nix types.
  • Syntax for nixConfig and follows is the same as in flakes.
  • flake check ensures files are up to date.
  • App for flake.nix generator: nix run .#write-flake
  • Custom do-not-edit header.
  • Automatic flake.lock [flattening]!(#automatic-flakelock-flattening).
  • Incrementally add [flake-parts-builder]!(#parts_templates) templates.
  • Pick flakeModules for different feature sets.
  • Dendritic flake template.
  • Works on stable Nix, [npins]!(templates/npins), [unflake]!(templates/unflake), [nixlock]!(templates/nixlock) environments.
image

this cute ouroboros is puking itself out.

Terminal window
mv flake.nix flake-file.nix
nix-shell https://github.com/vic/flake-file/archive/main.zip -A flake-file.sh --run bootstrap