In every post I see about LLM usage in Nix/Nixpkgs/NixOS the community is divided.
Considering PR’s like https://github.com/NixOS/nixpkgs/pull/534657 exist, I would like to ask a few questions
I am strongly against LLM usage
I am against LLM usage
I am neutral in regards to LLM usage
I am for LLM usage
I am strongly for LLM usage
0voters
More LLM usage will drive me away from nixpkgs
More LLM usage will have no effect on me
More LLM usage will encourage me to contribute more
im not against llms as tools, im against the corporate circus and low effort contributions. i dont mind if contributors use llms as long as they review, test and communicate as humans. and i have same expectations from the nix maintainers side, i dont mind how many automations they setup as long as they dont merge malware into nixpkgs and keep nixos stable.
“a computer can never be held accountable, therefore a computer must never make a management decision.”
I can’t express how much I hope this useless bubble bursts. Forced to use it at work, shoved into every ad on youtube and co., and now even this project I participate in during free time is overrun with people trying to shove it in everyone’s faces. If even nixpkgs chooses to continue down this route, I’d rather cancel my internet plan and go back to actually enjoyable hobbies.
It’s also simply demeaning to see people I formerly held in very high esteem and looked up to, go full in and changing from people you can talk to to being indistinguishable from actual, real life cult members.
Always the same tired, sycophantic talking points.
For me, this is a free software issue. I’ve given up a lot of programs I used to enjoy and some I was never able to truly replace in the name of having a free-as-in-freedom user experience. I can make small concessions for drivers and firmware and it doesn’t really bother me, but using proprietary LLMs to develop free software is too far for me. Even if there are freely licensed LLMs out there (I’m not up-to-date on the current LLM scene), this conversation seems to revolve around unfree ones (mostly Claude). Having an agents.md file in the root directory of Nixpkgs is not something I would ever use and even if it did irk me a little, if it’s what the community wished for, I could live it. However, in the PR you linked, there is also a bit about adding a symlink called CLAUDE.md because Anthropic tools apparently don’t read the file that every(?) other agent reads by default. This is too far for my taste. It’s an indirect endorsement of unfree tooling right in the root directory of Nixpkgs, which is, to me, one of the most important free software projects in development.
As I understand it, this is out of necessity because no other hosting service can offer all of what we need at the scale we need it. That doesn’t mean we can’t be as free as possible where we can control it. Also, the .github folder in the root directory has the decency to hide itself.
Since this poll is central to this thread, it is important to be precise about what it can and cannot show. An opt-in poll on an hot thread is a voluntary-response sample. It captures the people who felt strongly enough to click, not the community, and with the running totals visible while the voting is open, the early lean can sway later voters the same way. This makes it a poor basis for any claim about a majority position, in either direction.
There are specific problems with the construction:
“LLM usage” is never defined. Unreviewed generated PRs, disclosed assisted work, and review help all collapse into a single for/against.
Question 2 pairs an assumption that usage will grow with an outcome. It sets an extreme option, “drive me away”, against a mild one, “encourage me to contribute more”.
Question 3 forces a binary choice with no room for nuance. No condition on if LLM usage is disclosed or not and no check that the respondent reviews PRs at all or had intention to review PRs.
This makes it difficult to aggregate into anything that is actionable because critical information is missing.
None of this means the topic should not be discussed, but it does mean that neither this poll nor the thread around it establishes where the community stands. A claim about the community’s position would need a properly designed, privately run survey, and not an opt-in poll in a heated thread.
I don’t necessarily disagree with anything you’ve said but I’d like to point out, at the risk of oversimplifying, that the hot thread has active participation from both “sides”. I do agree that there needs to be a better poll than this one though. My question is, why isn’t the SC not running one?
Edit: I’ve mistakenly said “SC” where it’s obvious the relevant party for this is the Nixpkgs core team, and I see “why isn’t the SC running a poll?” is too shallow but given their willingness to put their foot down in topics I would like to know whether we’d be getting something in the future that’s not plainly a “discussion” but a proper probe of the public opinion.
Or the Nixpkgs core team, since the issue at hand is limited to their domain, and they’ve made the most forward progress in the official org on addressing it!
I’d love to see us experiment with having referenda, with the same electorate as we use to elect the SC. Using the SC election as a proxy referendum is unsatisfactory in a variety of ways.
Because nixpkgs-core team has been running an actual discussion with arguments for many weeks, not a flattened poll. (Before officially adding a LLM use restriction policy which does forbid the most-annoying practices of LLM PRs and adds disclosure requirements without banning everything LLM)
I agree, esp. about claude.md. I know you mentioned this in the linked thread but I’ll post it here too:
I don’t think we should include this symlink, but instead add CLAUDE.md to .gitignore so it’s trivial for Claude users to symlink themselves. Looking in that file we also exclude vscode, jetbrains, and helix files, and this feels equivalent to me when it comes to a specific/singular tool.
– @adamcstephens
I agree with @rhendric; the nixpkgs core team is the owner. They own the policy and input on it should sit with them rather than the SC. The SC’s responsibility is to delegate which is why the team was formed in the first place.
A referendum is an interesting idea. There is already some precedent in the constitution where the electorate can vote to change the Community Values. But the constitution does precisely mention it is for just that. I suppose this would again sit with the core team to decide.
If the core team does desire to run a proper survey, I would be willing to aide in its design.
I totally agree. I favored speed and simplicity over a longer, more complete picture. I would love to see a more well put together poll, by the SC, core team or any other neutral authority.
i was previously neutral on LLM usage. I do use a mix of cloud-hosted Kimi (until I can scavenge enough RAM to run it locally) and locally-hosted qwen inside nixpkgs 2-3 times a week to brute-force musl and cross-compilation fixes that i carry locally and treat as prototypes – so that i can deploy my own machines regularly – until i get a free weekend to dig into things and put together proper, upstreamable patches.
i’m now firmly in the “ban all LLM use in nixpkgs” camp. some people have adopted a tool, decided “this tool changes how i do development” (no disagreement there), and concluded “this tool changes the working relation between me and my peers”: no, that’s not a decision that gets made unilaterally; that’s not how social norms work.
i say “ban all LLM use in nixpkgs” now because i don’t understand how to reset those people’s expectations except by forcing the tooling to become invisible during the contribution process so that it can’t be used as an excuse for why some norm should no longer apply.
do i expect such a “ban” to actually reduce LLM use within nixpkgs? no: the enthusiasts will learn to disguise their use of LLMs; to make their LLM-based patches live up to the same degree of scrutiny as a human patch until i can’t call them out for randomly breaking with the existing style in every file or for using some impossible to parse Claude-ism. that’s OK: that’s the point.
To your point, I’ve been in the “reviewing LLM generated code” seat in other contexts before, and can definitely sympathize with needing to perform mental gymnastics to figure out what classes of mistake the robot might have made, so could see how driveby contributors or reviewers might not want to bite that off.
Constitution defines the voting formats for things where no other authority but that vote exists for the corresponding decision.
If a team wants to make a decision within its authority, there is nothing that discourages decisions conditional on the outcomes of something well-defined, including but not limited to a community poll with eligibility rules matching the SC election.
I am pretty sure that all of the examples of this problem already violate the letter of current relatively lenient policy. It would be good, of course, to have relatively harsh enforcement measures based on reviewer complaints!
im an llm user myself (i self host) but i agree there’s no place for CLAUDE.md/AGENTS.md in the nixpkgs repo, completely unnecessary and irrelevant to the project