There is likely a mass of devs that is probably, hmmm, 10x the number of Nix devs from over a year ago, who know exactly what Nix offers and why it is cool, but couldn't be bothered to master it until AI came along and basically "solved the problem".
So I'd expect AI to rapidly accelerate Nix adoption. Hopefully, because it is amazing.
I've been using nix before you could use AI to write ok code with it and it was a struggle knowing how to configure nix sometimes. Especially when dealing with less popular software which happens from time to time. Still stuck to it as I've felt that once it was working it was pretty amazing. But using Claude with nix is super cool. It's really good and I don't care much about the quality of my nix config at this point, it's just for me and I just want my computer to do what I want it to do and Claude can figure it out most of the time.
Yeah, even you understand nix and make packages it was still a PITA to use sometimes. If something isn't in nixpkgs or you need a different version, it might be as easy as writting 20 lines of nix, or 2000.
Now you can just send this to agent "port dis <repo link>" and 20 minutes later you get a working package, or 20 working packages what were required for that package to work.
Fixing stuff also easy, just today for some reason my machine wouldn't wake up monitors after sleeping them, a few minutes later claude fixed my configuration. Making QuickShell things with it also easy. For years I've avoide all GUIs for networkmanager and bluetooth on linux because they all looked awful and unusable, now QuickShell things made just for me, exactly the way I wanted.
I think that ratio is possible, and certainly I’m counted among those numbers. However, it is not so much the case that I longed to use Nix and agents made it more feasible. What happened is that I wanted an agent to manage my machine’s configuration without giving it much access.
It’s not the only thing that agents have changed for me - I also went back to using neovim and tmux; partly because of how I use remote development servers but also because now I can get my setup working perfectly for me without a lot of hassle.
Open source and code managing all the things has always been a great idea but now it feels crazy to do anything else.
Nix is amazing in many ways, but its discoverability and transparency are sometimes very poor. Its module system is anything but lean and straightforward.
Me too. I’ve known about Nix for a long time but resisted the idea of learning a new language just to manage my system. In retrospect, it would have been worth it, but now I don’t have to.
Before AI, there was virtually no documentation, and there are so many ways to do any single thing that it makes it brutal to figure out what any given configuration was trying to do.
Is `nix` amazing though? Eh... if it were implemented better, it could be amazing. It's like python virtual environments or `pyproject.toml` for general software. It solves a real problem, but it does so by introducing a possibly even bigger problem.
I use an agent to author my nix config - personally I don't have the determination to have picked Nix up entirely on my own so I find it to be a godsend. I can code review config changes and keep it all in git - also makes it easy to pick up the entire config and deploy it on a different machine.
LLMs can be deterministic too! People just don't bother because the applications of this aren't widely known yet. See https://lukechampine.com/repligraphs
I was just reading Michael Lynch's posts about Sia[0] and I came across this.
Its a very curious project, but don't you end up pinning repligraph usability on model weights? Since you take indeterminism out of the equation, a repligraph's notability is as significant as the producing model's weights, and since there is no dice rolls to be made, the eyeball problem:
> Our blind spots, while not perfectly correlated, have substantial overlap
is entirely replicated. Models that are diffused from one another can have the same blind spots, the same loose statistical reality that exists with humans. This is partially addressed in steering:
> A repligraph proves that a model generated some artifact. It does not prove that the model did a good job, or that the artifact is safe.
but I think the "Peer Review" solution is inadequate, and with some jailbreaking prompts' innocuous looks considered, "the attacker just needs to find one prompt" might be much easier than it appears.
Batching seems to be a huge economic turn off for proprietary model determinism, but I think its entirely viable for consumer models. Trustless evals are brilliant and should've been our reality. Nice project, good luck on your endeavor.
I find myself moving more and more non-build things into nix builds because I don't want to roll my own cache invalidation. Seems like this is yet another reason to do so.
Dude, this is amazing stuff. Farid really is putting out banger after Nix banger haha. This sounds like a mini/less capable Antithesis runtime, but running on your machine.
I'd love to become a Nix user one day. I tried to write a rather complex flake one day; it ended up with Nix (nix command) deleting itself: I immediately lost trust with it.
Also Nix first tries to find a derivation in a remote cache and sets a very long timeout, so when you have a limited connection (e. g. a corporate limited network setup), it's painful.
There is likely a mass of devs that is probably, hmmm, 10x the number of Nix devs from over a year ago, who know exactly what Nix offers and why it is cool, but couldn't be bothered to master it until AI came along and basically "solved the problem".
So I'd expect AI to rapidly accelerate Nix adoption. Hopefully, because it is amazing.
I've been using nix before you could use AI to write ok code with it and it was a struggle knowing how to configure nix sometimes. Especially when dealing with less popular software which happens from time to time. Still stuck to it as I've felt that once it was working it was pretty amazing. But using Claude with nix is super cool. It's really good and I don't care much about the quality of my nix config at this point, it's just for me and I just want my computer to do what I want it to do and Claude can figure it out most of the time.
Yeah, even you understand nix and make packages it was still a PITA to use sometimes. If something isn't in nixpkgs or you need a different version, it might be as easy as writting 20 lines of nix, or 2000.
Now you can just send this to agent "port dis <repo link>" and 20 minutes later you get a working package, or 20 working packages what were required for that package to work.
Fixing stuff also easy, just today for some reason my machine wouldn't wake up monitors after sleeping them, a few minutes later claude fixed my configuration. Making QuickShell things with it also easy. For years I've avoide all GUIs for networkmanager and bluetooth on linux because they all looked awful and unusable, now QuickShell things made just for me, exactly the way I wanted.
I think that ratio is possible, and certainly I’m counted among those numbers. However, it is not so much the case that I longed to use Nix and agents made it more feasible. What happened is that I wanted an agent to manage my machine’s configuration without giving it much access.
It’s not the only thing that agents have changed for me - I also went back to using neovim and tmux; partly because of how I use remote development servers but also because now I can get my setup working perfectly for me without a lot of hassle.
Open source and code managing all the things has always been a great idea but now it feels crazy to do anything else.
Nix is amazing in many ways, but its discoverability and transparency are sometimes very poor. Its module system is anything but lean and straightforward.
I say this as a daily user of Nix.
Is mainly the language. Is not just weird like APL , that insanely make sense. is weird.
I don’t find it weird compared to other functional languages.
This is exactly me and I've fallen in love with nix
Me too. I’ve known about Nix for a long time but resisted the idea of learning a new language just to manage my system. In retrospect, it would have been worth it, but now I don’t have to.
Yeah I tried to daily drive Nix at one point pre AI and the ergonomics were just not a good match for me - perhaps I should try it again.
Before AI, there was virtually no documentation, and there are so many ways to do any single thing that it makes it brutal to figure out what any given configuration was trying to do.
Is `nix` amazing though? Eh... if it were implemented better, it could be amazing. It's like python virtual environments or `pyproject.toml` for general software. It solves a real problem, but it does so by introducing a possibly even bigger problem.
Seeing Nix these days is such a whiplash experience. We have fully deterministic systems and then we have LLMs. God ;)
I use an agent to author my nix config - personally I don't have the determination to have picked Nix up entirely on my own so I find it to be a godsend. I can code review config changes and keep it all in git - also makes it easy to pick up the entire config and deploy it on a different machine.
Plus if it messes up, you can just roll back.
I don't vibe code my config but this is still my favorite part. If I had it working at some point, I can always get my full system back to there
LLMs can be deterministic too! People just don't bother because the applications of this aren't widely known yet. See https://lukechampine.com/repligraphs
I was just reading Michael Lynch's posts about Sia[0] and I came across this.
Its a very curious project, but don't you end up pinning repligraph usability on model weights? Since you take indeterminism out of the equation, a repligraph's notability is as significant as the producing model's weights, and since there is no dice rolls to be made, the eyeball problem:
> Our blind spots, while not perfectly correlated, have substantial overlap
is entirely replicated. Models that are diffused from one another can have the same blind spots, the same loose statistical reality that exists with humans. This is partially addressed in steering:
> A repligraph proves that a model generated some artifact. It does not prove that the model did a good job, or that the artifact is safe.
but I think the "Peer Review" solution is inadequate, and with some jailbreaking prompts' innocuous looks considered, "the attacker just needs to find one prompt" might be much easier than it appears.
Batching seems to be a huge economic turn off for proprietary model determinism, but I think its entirely viable for consumer models. Trustless evals are brilliant and should've been our reality. Nice project, good luck on your endeavor.
[0]: https://mtlynch.io/tags/sia/
The configuration can be sloppy and vibed, as long as it behaves the same every time nix retains its power :)
I kind of confused what nix has to do with this considering it seems to basically be reimplementing rr?
I find myself moving more and more non-build things into nix builds because I don't want to roll my own cache invalidation. Seems like this is yet another reason to do so.
Dude, this is amazing stuff. Farid really is putting out banger after Nix banger haha. This sounds like a mini/less capable Antithesis runtime, but running on your machine.
Curious: how does Rewind deal with randomness?
I'd love to become a Nix user one day. I tried to write a rather complex flake one day; it ended up with Nix (nix command) deleting itself: I immediately lost trust with it.
Also Nix first tries to find a derivation in a remote cache and sets a very long timeout, so when you have a limited connection (e. g. a corporate limited network setup), it's painful.