Entitled AI users in FOSS
I’ve been thinking about AI in FOSS for a while, mostly because the discourse around it has been completely unavoidable. After seeing something today, I got motivated to try to collect my thoughts around it, because I think AI is a pretty complex topic, and everyone seems to have a “stance” or thoughts about it at the very least.
Just scrolled through a long chat in the Flathub matrix group wherein a person presented their LLM-generated project in the chat, and essentially asked what he needed to do to get his app on Flathub (more specifically, he asked what guarantees of human testing were needed prior to submission).
This is not unusual for Flathub (and actually, his was one of the more well-formed questions of the sort). I’ve seen a lot of users ask similar questions for their vibe-coded apps. A majority of Flathub reviewers are cautious about AI, and a subset of those are strictly anti-AI. When the person received a dismissive response from one such Flathub maintainer, my first instinct was to feel upset on behalf of the guy who had seemingly asked a simple question.
The guy was met with “We don’t want your vibe-coded app on Flathub”, “more than half of the code should be yours”, more extreme comments like “AI is destroying the environment”, and even off-handed associations with AI usage and fascism. Even further in the conversation, the guy was being told he should learn how to code instead of vibing an app together. I don’t find those kinds of arguments persuasive (especially not the comparison to fascism), and every time I’ve heard those arguments I get frustrated, because I feel like there’s a much more interesting argument to why these tools can do more harm than good.
As the conversation continued, the guy got more heated, and asserted that his app solves a niche that no other app does, and should be taken seriously. He didn’t base his arguments on whether his code was stable, or even guarantee his code would be maintained for a while. His main argument was that his app solved a problem and should be taken seriously.
Even to this point, I was still feeling sympathetic for the guy. I have used AI in the past, and surely this was all overblown, and yeah, maybe the guy doesn’t know how to code (he claimed this himself), but if he guided the architecture and the design, maybe we’re past the point of looking at individual lines?
Wrong.
He posted the GitHub link to his project, and I started poking around it. Some of the more patient users in the Flathub chat were already pointing out things fundamentally wrong with the project. The project uses one of the projects in the craft suite as its core engine, which is itself a completely vibe-coded suite. Half the commits that were made to the project fail the project’s own tests, and the comments in the code are in two different languages. The first point alone is crazy enough that I questioned my previous sympathy. I’m unsure if the guy put any thought into the architecture of his app at all.
When the creator of the vibed project was questioned about taking an AI-generated backend and feeding it into another AI-generated project, he dismissed the concerns and asked for feedback on “the design” in his words.
At this point I finally decided to respond, and give him some advice, because I figured he probably needed some encouragement amidst all the negativity:
Just a friendly word of advice, LLM generated or not, if you’re not interested in the architecture of your code, you’re going to have a rough time maintaining it long-term
Me personally, I’m not against LLM usage in code, like some of the people in here, but you have to try really hard with LLMs to avoid losing your understanding of the project and avoiding what the industry calls “technical debt”
Honestly there’s nothing wrong with making your own projects with your own life constraints, I respect that! And it looks like the project is suiting your needs hopefully :)
However, if you want to convince other people your project is worth using or looking at, then there’s some additional work you need to do to guarantee the project is on stable foundations.
A lot of people come in guns-blazing expecting others to take their project seriously just because it exists, and that’s never how the world has worked
Unsurprisingly, this guy did not like that response, and anyone else’s responses either. For almost another hour, the guy continued to try to argue his point, that no one is making the thing he’s making and it wouldn’t be a thing for the next 5 years if he hadn’t made it. Once again, nothing in his argument put the Flathub maintainers at ease that this is a project on solid foundations that will be well taken care of and maintained for a long time. The reason why his arguments didn’t touch on what the maintainers needed, is because in reality, he doesn’t care.
This scenario and many others like it I’ve seen around the FOSS space has solidified to me what I think one of the main problems is with AI, and why most FOSS maintainers seem to hate AI with a burning passion. It’s not AI necessarily, it’s that AI can enable an entitlement like we’ve never seen before. There’s always been entitlement in FOSS, for example in issue reports. People demand that their issues be taken seriously and be fixed right away. People have historically treated maintainers with disrespect, but AI makes it so much worse.
It’s not enough for someone like this guy in the Flathub chat that he has something that works for him. He demands that other people take his project seriously, through support getting his app onto Flathub, and asking for design review for the app. And despite others giving friendly advice on how to make his project more appealing to the Flathub maintainers, he insists on pushing unrelated arguments that no one cares about.
It’s not just with people making their own apps and expecting to be taken seriously, it’s also with contributions to existing projects. Maintainers I’m familiar with are almost unilaterally tired of LLM contributions, because people are not doing the work themselves to make sure the patch is correct, makes sense architecturally, and solves a real issue. That alone is its own form of entitlement, that wasn’t really possible prior to AI. When you sent out a patch in the days of yore, someone had to type the patch themselves, whether it be you or someone else. With that level of involvement you had to know at least the basics of the project you were contributing to. This isn’t the case anymore with AI. You can just “hey Claude, optimize performance on my hardware” and yeet it over the wall. You’re offloading the mental labor to the maintainers.
I say this a lot at work to my coworkers, that generating code is easy, but maintainership is hard. I don’t think the people vibing these patches realize it, or if they do, they simply don’t care. Again, it’d be one thing if this were entirely local, and they just want something on their system that works for them. When you decide to contribute upstream, the right thing to do is to make the maintainers’ jobs as easy as possible, and understand that they are doing much harder work daily than you ever could imagine. Having empathy for maintainers is something I think the LLM crazed users completely lack. It goes a long way to be humble and accomodating, ask questions, and be willing to learn in order to make the lives of the maintainers in your target project easier.
Also part of learning how to use an LLM well in coding is understanding how to constrain your usage to the requirements of your upstream project (with LLMs or otherwise). For example, the Linux kernel accepts AI generated contributions and recently got rid of their attribution requirements. This might sound like it’s open season, but your code MUST be correct, or you are going to be ignored. The kernel maintainers are not slaves, and thankfully aren’t being asked to be treated as such. On the other hand, there are projects that require LLM disclosure, such as Mesa. They still accept LLM patches (even ones entirely generated by LLMs), but the prose must be your own and you need to understand your work. Every project is different and has different policies around LLMs.
Respect projects that ban LLM-generated code. Do not complain to them, do not attack them, and absolutely do not try to skirt around the rules. It’s really not personal, and think about how you’d feel if you were barraged with entitled vibe coders expecting you to merge without looking, or worse, do all the work of looking for you? It goes a long way to think about how the maintainers would feel about things. Most maintainers are overworked, not even paid, and working on the project out of the same passion that’d lead you to contribute, but they are doing the harder part of maintainership. Remember, code generation is easy, maintainership is hard.
Sadly, I don’t think empathy for maintainers is something that vibe coders really think about, anecdote above of course. There are always going to be entitled people out there, and AI has made it easier for them to shove slop into people’s faces.
P.S. I use AI, and I’m not shy about it (except in spaces where it’s frowned upon). At work, since early this year, I’ve been given OpenAI and Anthropic subscriptions at work initially to play with, and now to use full-time. We went from being introduced to AI, to being heavily encouraged to use it.
I’m not a fan of big-tech’s outlook on AI (it’s so dystopian), but I do take the position that AI is a tool. Tools can be used for good and for evil, and people like to focus on the evil AI can do, but my college AI professor was a big proponent for AI for social good, and I adopted that position for myself as well. Be good.