TECH Signal 289 3 feeds carried it
Omniflake aggregates thousands of Nix flakes into a single input
Illustration only Photo by Zouhir Zouhir on Unsplash
Omniflake provides a single flake input that lazily grants access to nearly twelve thousand Nix flakes, letting engineers depend on many projects without adding each as a separate input.
It reduces the boilerplate of adding many flake inputs and avoids duplicate nixpkgs copies through the follows mechanism. Because Nix evaluates inputs lazily, only the flakes actually used are fetched, keeping build times and network usage low. The approach trades a large lock file for simplicity, which may become a drawback if the lock file grows unwieldy or if a specific flake version is needed.
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
Omniflake is a GitHub-hosted flake that bundles inputs for almost twelve thousand other flakes.
It uses Nix's lazy evaluation and the follows attribute to share a single nixpkgs copy among its many inputs.
Engineers can reference any bundled flake via attribute paths, overlays, modules, or directly with nix run.
THE READ
What the cluster adds up to.
The core change introduced by omniflake is the consolidation of a vast number of individual flake inputs into one aggregate flake. By declaring a single input that points to the omniflake repository, engineers gain access to a large collection of flakes without having to list each one separately in their flake.nix. This shifts the workflow from managing many discrete dependencies to referencing a single, comprehensive source.
Adopting omniflake incurs certain costs. The flake.lock file grows substantially because it records the transitive graph of all bundled flakes, even though only a subset is fetched at build time. Users must rely on the laziness of the Nix engine to avoid downloading unused flakes, and they must trust that the aggregator keeps its bundled flakes up to date and compatible with their projects.
The solution stops working when a project requires a specific flake revision or patch that is not present in the omniflake collection, or when the aggregator lags behind upstream updates. In such cases engineers would need to add the missing flake as a separate input or fork omniflake, re-introducing the complexity the aggregate was meant to avoid.
Feed coverage shows a divergence in perspective. Farid Zakaria’s blog presents omniflake as a personal response to his long-standing view that flakes are "meh", offering it as a pragmatic workaround. Lobsters and Hacker News, by contrast, provide only comment threads where users discuss the trade-offs, usability, and alternatives, highlighting community reactions rather than introducing new factual details.
Written by elseif from the cluster below · checked for specifics the sources never containedTHE CLUSTER