Skip to content

Overview

flake-file treats flake.nix as a generated artifact. You declare inputs and settings as Nix module options, then regenerate the file whenever those declarations change.

What is flake-file?

Understand the problem it solves, who it’s for, and how it compares to a plain flake.nix. Learn More

How it Works

The module system, option schema, the write-flake app, and the outputs function. Learn More

Quick Start

Bootstrap a new project with the dendritic template and generate your first flake.nix in minutes. Learn More

Migration Guide

Step-by-step guide for adopting flake-file in an existing flake-parts project. Learn More

Bootstrapping

Generate a first flake.nix without any existing flake using a one-shot bootstrap command. Learn More

flakeModules

All built-in flakeModules: default, dendritic, import-tree, npins, unflake, allfollow, nix-auto-follow, and flake-parts-builder. Learn More

Templates

Ready-made project templates: default, dendritic, parts, npins, and unflake. Learn More

Outputs Function

How flake-file.outputs works and why you should keep it as the default one-liner. Learn More

Hooks

Run commands after writing or during check with write-hooks and check-hooks. Learn More

Lock Flattening

Automatically flatten flake.lock with allfollow or nix-auto-follow. Learn More

flake-parts-builder

Incrementally add and remove flake-parts templates with flake-parts-builder integration. Learn More

All Options

Complete reference for every flake-file.* module option. Learn More

Contribute Community Sponsor