Hello everyone,
I recently looked into Flake-less setups, e.g. with npins and noticed that the main feature missing for me was a comprehensive command-line interface similar to the Nix3 group of commands.
This is why I wrote nie, to be able to:
- easily run software from remote repos
- run software in local repos without having to do much digging regarding parameters etc.
- have a few quality-of-life features around shells, dev shells, etc.
nie uses a reference scheme inspired by flakes, although a bit different and not compatible with flakes. It uses nix builtins to fetch remote or local repositories and requires no Nix3 features.Flake compatibility is also available through flake-compat, which will be automatically fetched and applied if required.
Advantages:
- no experimental features required
- this also means good compatibility across all Nix forks
- compatibility across a broad range of repositories
Limitations:
- no built-in input pinning
- Flake compatibility limited by flake-compat
- output discovery follows heuristics that may not be exhaustive for every repo
- cli similar, but not directly compatible with Nix3 commands
Possible future features:
- CI matrix generation and execution similar to nix-flake-workflow
- support for other compatibility providers like unflake
Some examples can be found in the repo’s README, documentation is available in the form of man pages.
The project is still in an early stage and the interface as well as the overall functionality may still subject to change. I have mainly tested and used nie with Flake-enabled repos so feedback on compatibility with other (non-Flake) repos would be of great interest.
Looking forward to your feedback ![]()