upvote
> The reality for most people - even expert programmers - has been that the freedom is more about being able to lean on other people to do that. Most people can't justify the time commitment needed to read and then modify the code for tools they use very often.

So it's like everything else in life. I am not a plumber, but I very much do want to be free to do my own plumbing if I want to. Not because I do want to, but because it means that I do get to choose whom I let do my plumbing.

reply
Yeah I think this is changing, fast.

100% agree on "clone X and tell me how it works". I'd also add: "clone X and see how it does Y; use that as design reference for building feature Z" if licenses permit.

On modifying software... I forked codex in ~Dec and had my own lightweight "plan mode" and a few other things. It was fun and satisfying, but it ended up being a bit of a pain to keep updated. The models were less good then, and maybe I should have learned some rust first. But it was close. For a less fast-moving codebase it'd have worked, and that was 8mo ago.

On the other hand as someone building in devtools for the first time, I struggle with how to think about this. We're building a cloud agent + sandbox platform, https://boxes.dev - same problem space as the author's product exe.dev. We could open source our client or the whole stack (we've been thinking about it), but we're adding stuff so quickly that anyone customizing would have a hard time with updates. There's also a lot on the hosted side that users couldn't modify unless they self-host.

But I like this vision of a world where software is some fluid thing, and everyone is writing personal mods and building off of others' - basically OSS with forks but where every user (or their agent at least) is engaged with the code.

reply
As an end user, I don't mind if you're building a product with rapidly changing API's out in the open. I'll still use the product if it's useful and deal with the churn. What I DO care about is not having half of that project rug pulled 12 months down the line when your Series B folks decide that this particular money knob needs to be turned up.

So if you want to not piss off your users, that's the way to do it. Build a model where you can actually sustain the product, and no, giving it away on seed and series A round money then rug pulling that gift is not the way to achieve that.

reply
How are you handling the actual provisioning of the agent boxes/VMs? Are you using a specific provider/cloud, or multi-provider? Are there any providers/clouds you've found are better/worse for your use cases?

Asking because I am working on an open/standard protocol/layer for provisioning cloud resources across different providers. One of the ideas is to provide a marketplace of providers/resources via one unified/standard API, which I would allow automatic selection and provisioning of VMs (and other resources) based on price/value/feature/reputation requirements/priorities.

reply
Coder uses terraform providers to do the provisioning. I think that's the correct layer of abstraction, all major providers will be there and can be customized with the modifications needed via various other terraform features.

I've written three different solutions for platforms that solve this standard protocol layer. What has worked for us was deciding to standardize on the Kubernetes API for our services back in 2017, and then from then on, all our providers have provided either a k8s API to interact with resources, or provide a Cluster API for provisioning. For example we have two datacenter VM providers that implement the k8s API and we've been able to swap the providers with no user refactoring, it's a good solution in hindsight with how many people have k8s in their stack.

For the second big feature you're thinking of, we never really go a good solution to this problem, a lot of our workloads are long lived and not necessarily spot instance-able, but it's a very fun routing problem. Most of our need to be in multiple clouds is that we want to heavily separate our customer facing services, and keeping it away from internal workloads that support those customer APIs.

Is this public work? I'd love to take a look. This is my bread and butter.

reply
deleted
reply
> On modifying software [..] It was fun and satisfying, but it ended up being a bit of a pain to keep updated.

I don't mean this as a criticism in any way - but the need to keep your changes current is a strong motivation for getting those changes incorporated upstream.

reply
> but the need to keep your changes current is a strong motivation for getting those changes incorporated upstream.

But the cost of contributing changes made by AI is higher: * high chance of the being just rejected because code made by AI, or PR made by AI * so contributing would require carefully preparing a human-made patch (but that becomes much more work than telling an agent to just upgrade my fork) * there is still a high chance for the patch to be rejected or just ignored for months/years, like before

Also, there are much more vibe coded projects which are open source, but the author has no interest in maintaining, so issues/PRs will just be ignored.

reply
I have sent countless small bug fixes even before, to tools that I use that I could dig into when something was off... No big heavy lifting, but plenty of "tinker on your tools" stuff. And I don't think what I did was that special, so maybe the experiences are different?

The current LLM-driven stuff seems to break down the expectations, and now there are a lot of places which just ignore anything I send in (the same tinkers as before), generally, for a while. Though there are some tools that picked up the pace and actually react faster (so YMMV here too).

But there are few things more frustrating as being half-way. Case to point is LM Studio. It's closed source, has bugs (duh!), and there's at least a GitHub issue tracker to report the bugs -- but then by and large nothing happens to those reported things. It's almost worse than not having an issue tracker (then I could justify never to really touch LM Studio again, this way I keep hoping against hope that reports will turn into fixes and thus I keep using and keep reporting...)

reply
The solution for this is to pay open source maintainers for their attention. If I want them to review and merge my bugfix I should attach $1000 to the PR.
reply
This is actually not a bad idea for funding open source software. It used to be that you’d have an author who coded a project and then could fix the occasional bug or two quickly.

Now, we have larger projects where it is rare for one people to have a complete understanding, and the main value is a person to reviewing patches and bugs to make sure the changes align with the larger goals/path for the project. There is little incentive for a maintainer to do this, aside from wanting to limit forks.

Paying for that review might be the way to keep this whole model sustainable.

reply
Opportunity for gh

“Here is my pr I attach x$ payable when it is merged” and allow me to add $ to other prs.

I have been waiting year + for multiple feature in some projects that have open prs and for one I would easily bid 100-200$

reply
Maybe a donate link attached too. The dollars tied to a PR could help set priority of fixes.
reply
That's my biggest gripe with open source software. It's not really the open source part that's bad, but when projects turn into major projects with a substantial user base, I think the owners have an obligation not to delude their users into thinking they have more say than they actually do. Plenty of big projects leave their issue trackers public and have docs that encourage community contribution, yet effectively ignore user submissions unless perhaps someone with a name raises an issue. I completely agree that allowing users to waste their time believing their issue or pull request can make a difference is actually worse than not allowing public submissions in the first place.

I'm not sure why I seem to be in the minority on this. Maybe I've just had bad luck in that most of the issues and PRs I've submitted to open source have been ignored. Hell, I'd prefer a "thanks but no thanks" or even "fuck you" over radio silence. The typical response to this frustration of mine is "just fork the code, bro", which is absurd because forking should be a last resort for software that thrives from having a community.

reply
> thrives from having a community.

Does it? I think a lot of software projects which are not as huge as the Linux kernel etc. thrive best with a tight core development team, and not from a "community" if you mean that word beyond "users".

Look at it from the point of view of a maintainer. Not sure if you've ever tried. People want to pull your software towards a million incompatible directions. They write some big patch and then get angry if you don't merge it.

My advice: consult the maintainers first whether they agree with your idea and whether they are open to considering your submission. You still won't have a guarantee that it will be accepted, because that's their final say. But at least you won't spend effort coding up something that they could already tell you they don't want to have in their software.

reply
> which is absurd because forking should be a last resort for software that thrives from having a community.

This is true, of course, but having a community is completely orthogonal to whether software is open or closed source.

reply
deleted
reply
The two are correlated which does encourage that mistaken view. Github culture generally blends these two, having an open issue tracker, pull requests etc. as well as the code right there, often with a free license.

But you can very much allow bug reports and feature requests in public while developing proprietary software and you can also very much work on a project alone or with a small group without being open to random patches, contributions or requests and be open source / FLOSS.

The key definitional question is the license, not any of the cultural stuff.

reply
> Most people can't justify the time commitment needed to read and then modify the code for tools they use very often.

As someone who way long before the LLM age had small patches accepted in several dozens of projects I've been using, I can assure you that this is just a matter of mentality. All I needed to be able to do that was to stop thinking that "nobody has done it so far, so it must be hard" and just do it. Sometimes I failed, but more often than not it turned out it wasn't hard at all and nobody has done it so far simply because nobody cared enough to attempt it.

> Getting software to compile in order to start hacking on it used to be enough friction that I often wouldn't bother.

Not my experience at all. Usually the only limiting factor is the size of the project. Compiling a web browser on my 7 yo 13" laptop is a miserable experience, but compiling most of the desktop components or utilities is and has always been a breeze and, in my experience with both Debian and Arch, just a matter of grabbing the distro's source package. I even do it on my phone these days.

reply
I expect it's a whole lot easier on Debian and Arch than it is on macOS.
reply
Well, a good OS helps in a multitude of ways. It's somewhat harder to do what we're talking about with proprietary tools anyway.
reply
I now have a fork of Ghostty that is kept up to date with AI and automatically triages and then PRs issues. All because I wanted to have a built in settings page instead of a config file I needed to edit. The future of software is custom per user.
reply
Ha, yes! A few times I've had a back and forth with Claude about why software X isn't working as I expected it to, with Claude coming up with more and more ludicrous explanations, and in the end I say, "just go and read the code", and it remembers it can do that and goes and does it and then finds the bug, or the weird UX design or whatever. It's really helpful.
reply
> the freedom is more about being able to lean on other people to do that

Alternately: The collective capability is what makes important lasting changes, but individual capability is still a required building-block to get there.

Much like freedom of speech, come to think of it.

reply
> One of the arguments for open source software for end-users has always been the freedom to examine and modify how that software works.

The canonical example was RMS needing to fix a printer driver bug back before software updates were really a thing. That meant that there was a greater motivation for users to maintain their changes.

Today, with software being an evergreen stack of turtles from the BIOS all the way up the OS to the remote APIs the qpp interacts with, expecting a user to indefinitely maintain their private fork of any software is a really big stretch.

Unless it is a local-only, unmaintained project that doesn't get deployed through a software repository or an app store, I think that original vision of open source software is very much the exception and not the rule.

reply
> I think that original vision of open source software is very much the exception and not the rule.

RMS has never supported open source. And never emphasized software repositories or deployment or app stores or whatever. He is a proponent of free software based on ethical motivations, to allow users the freedom to control how their computing is done. It perfectly fits the local-only personal project.

reply
Three points:

1) I think that is a really interesting insight. I have never done the above myself, but often I don't "tinker" with things because the amount of energy it would take me to JUST GET IT RUNNING is large, and I might end up borking my own system in doing so.

An LLM in a VM can reasonably and safely completely work out on its own how to run some software. I'd never thought about really doing that as a reflexive thing when I am curious. Good thought.

2) I wonder if this is going to be a bifurcation. Where open source software is looked at far more often than in the past because it can actually be "live" investigated (not just have the code reviewed) with little effort?

3) On the opposite of 2, I wonder how many people are going to start "close sourcing" their software, because previously they could be open source, and rely on the inertia of actually getting it running to be enough to support a consultancy service or whatever. If getting it running is trivial, then maybe I need your service less, I just need the code. Might result in different business models?

reply
> I wonder how many people are going to start "close sourcing" their software, because previously they could be open source, and rely on the inertia of actually getting it running to be enough to support a consultancy service or whatever.

I do think there's a bit of a risk there, actually.

It's not just the consultancy thing - it's the competitive advantage of the software itself.

Used to be that you could release open source safe in the knowledge that few people would extract core parts that they need and discard the rest, or fork the project in another direction, because the friction was too much. Better value for people to contribute to your project directly, which provides a great deal of value in exchange for releasing it in the first place.

Now... if you invent some brilliant new database indexing scheme and release it as open source, I can point my coding agent at your code and have it imitate your new insight in a few minutes.

For some projects that's fine, but for projects that intended to commercialize that's not ideal at all.

So yeah, I do worry about the way coding agents distort the previous incentives for open source projects.

reply
> One of the arguments for open source software for end-users has always been the freedom to examine and modify how that software works.

A corollary is that more people will have eyes on the source code than the original developer(s), so the project can benefit from a broader skill set and set of orientations and priorities than if it were proprietary. Not just on the development front, but hopefully also in security, usability and accessibility

> The reality for most people - even expert programmers - has been that the freedom is more about being able to lean on other people to do that. Most people can't justify the time commitment needed to read and then modify the code for tools they use very often.

I imagine you are correct that most people historically didn't inspect or modify most tools they use, but most developers I know who have relied on open source software -- even if they didn't contribute directly upstream -- have had the experience of locally patching a small bug or adding a small enhancement to suit a use case, or studying a piece of an open source module as a starting place for their own implementation for some piece of functionality, or doing a cursory scan of a project to make sure it isn't e.g. phoning home, or simply taking a morbidly curious look to see how the sausage is made.

Sure, I'm not a representative sample and it would be great to have some actual numbers on this, but I have observed this among engineers at Fortune 500s and YC startups, but also non-tech businesses as well as at local public utilities and health systems.

Anyway, I agree that LLMs can provide a lot of value here and reduce the friction but I question the narrative that open source wasn't providing much value previously because most people didn't have time to read code. It provides value even without developers reading code in the first place, and reading code was historically one of the essential parts of the work

reply
Yeah, due to the friction of maintaining a private fork, I always upstream bug fixes I find where the fix is simpler than a work around. It's just neighborly. I don't it very often, maybe every 2 years? But a lot of other people do so, and it adds up; open source software continues to improve pretty substantially over the years.

And when I'm debugging I read all the code I have access to - certainly glibc pretty often, Python C implementation and C libraries quite often; the Go runtime, if only for the education, etc. It's not often I need to read the kernel implementation, except sometimes for networking protocols where it's also educational. I have found over my career that reading excellent code is as important to the quality of my code as writing code and iterating on it to make it good.

reply
> I question the narrative that open source wasn't providing much value previously

Don't get me wrong, I've been a strong advocate for the benefits of open source for decades. I think it's delivered enormous value, and most of the top valued companies in the world today wouldn't exist without open source!

What's new now is that the end user inspection and modification benefits are feeling a lot more material for a lot more people than before.

reply
No worries, I thought so, and agree with your point -- I'm a fan of your work and datasette historically was something I leaned on often at work and in personal projects. I have read some interpretations of recent developments that misunderstand what programmers and mathematicians do and have done, so was filling in the gaps in what you wrote to speak to some of those

I'm grateful for the work you've done!

reply
Actually, the harsh reality is that for a large majority it has been an easier way to pirate, nothing else, while feeling entitled to scream at the poor maintainers for not implementing whatever features they needed for yesterday.
reply
What a boringly reductive take.

It's not like hackernews is some amazing bastion of like, optimism and culture and interesting conversation, but surely we can do better than this?

reply
deleted
reply
HackerNews, the site when someone posts about their business for developer tooling, there is always a bunch of folks posting links about half implemented alternatives, because who wants to pay for tooling like any other professionals?
reply
This is also completely self inflicted. This is one of the only professions that does not want to pay for their tools and will do anything to get it for free, including building it themselves.

So this is quite unsurprising that open source developers have become this decade's new starving artists asking for donations for their "free software" only for a coding agent to do it for close to $0.

reply
Perhaps, but it is also the way in which LLM providers eat their seed corn. If everyone publishes less because the only one to consume it will be an LLM gives no credit, then LLMs will lose training material over time.
reply
deleted
reply
Then you’re maintaining a stack of patches on top of the upstream until the end of time because the maintainers of the projects don’t want AI slop contributions, but now you depend on these changes for your own use so now you’ve created more work for yourself keeping your own fork up to date.

I used AI to help me make a change to a library I use that ended up being a single line of code. The pull request was refused for having a Claude attribution even though it was a single code change that was syntax only with no change in behavior just to make it compatible with an older version of the language they claimed to support (so I considered this incompatibility a bug).

Ended up figuring out a workaround in our application code instead just so we could use the upstream. Still not really worth the effort for most projects even with AI.

In the era of AI slop being bombarded at you from all sides 24/7 I don’t blame them. Gatekeeping is the only way to maintain a semblance of quality (and sanity). Once you let slop in it accumulates at an insane rate. You need zero tolerance or you will be overwhelmed.

reply
> Then you’re maintaining a stack of patches on top of the upstream until the end of time

The linked article has an ambitious solution for that, in the form of this prompt to a coding agent harness:

  Set up a nightly cron job that
  executes the prompt: fetch upstream
  changes to the <software> and
  rebase all local changes on
  top of upstream. Check that the
  software works as intended and
  replace the current version.
reply
deleted
reply
Maintaining a fork seems trivial for an LLM. Replaying each upstream commit against your fork is exactly what even dumb models can do without issue.

But at the same time LLMs also let you question why you’re using a dependency if it’s causing certain issues for you.

e.g. I got tired of waiting for libghostty to publish a new stable release since the one in March which would have a memory leak fix I reported, so I spent a week of getting LLMs to build my own solid pty/terminal emulator. Now I have my own and frankly I'm in a better position having done it.

That's a ridiculously massive change to our relationship with software projects.

reply
I too built a terminal emulator and I like it, but I wouldn't say it's easy to maintain even with LLMs. The # of edge cases is insane.
reply
The cool thing is that you can use and adapt the tests of all major third party terminal implementations. Come up with your own invariants (brainstorm them with a smart LLM), and now every third-party test either passes, diverges (due to invariant/arch), or diverges (due to product bug).

And even if you aren't that robust about it, terminal apps are the sort of ideal vibe-coded app since, using it daily, you are giving it a constant real world test that uncovers issues to be fixed incrementally.

Is neovim over tmux over ssh glitching? LLM can fix it.

Is codex or claude code overwriting lines in the TUI, maybe due to alt screen, but it also happens in other major terminal apps? LLM can figure out why and whether you can come up with better general architecture to fix it.

Is there behavior you wish you had but no other terminal app supports? LLM can add it.

You can end up with a far better product than what you would find in the wild, and it's a fun sort of work.

reply
> Then you’re maintaining a stack of patches on top of the upstream until the end of time because the maintainers of the projects don’t want AI slop contributions, but now you depend on these changes for your own use so now you’ve created more work for yourself keeping your own fork up to date.

I thought about this but I currently maintain a fork of about ~6 things I use on my own, none of which I have any interest of contributing upstream because it'd be out-of-scope and put a burden on the maintainers that is unrelated to their primary goal. It has been an extremely easy experience with claude to keep those tools up to date on top of upstream.

StGit/Stacked Git is a proven tool for this and has worked wonders, I can literally just ask claude to fetch upstream and reapply stg patches on top and fix each patch if they break in order. I also keep extensive description of the INTENT on the stg patches so claude can easily figure out if something is no longer relevant (ie: somewhat implement by upstream) or where to land the code/hooks. I've added features, reworked how algorithms work (pathfinding related!) and small nits I hit on daily usage.

Even on a very churny upstream (one of the projects the single dev likes to refactor alot) it's still extremely chill and doesn't take more than an hour to get it updated when everything breaks. I can't say i care enough to setup a daily cron like a sibling suggested, but it would likely work just based off of this stg experience.

It's also nice, because some of those were actual bug fixes too which i have contributed back upstream! Maintaining your personalized fork is truly reasonable nowadays.

reply
> even though it was a single code change that was syntax only with no change in behavior just to make it compatible with an older version of the language they claimed to support

It seems like a great stretch to call this "slop".

reply
I agree but it’s their project and their rules. To them I’m just another guy tossing slop over the fence they don’t have time to review in the hig stack of all the other slop.
reply
> I think LLMs have changed that equation in a way that makes the original dream much more feasible.

> Several times a day I'll prompt regular Claude chat to "Clone x/y from GitHub and tell me how Z works".

Still highly dependant on one's access to SOTA AI models (availability and funding). Most people praising LLMs publicly for this sort of use case, are the ones with unlimited access to tokens / AI credits, or simply with a lot of money to burn.

But reality is that between using one's limited employer-sponsored quota of tokens to do their 9-5 business logic coding maintenance job, versus exploring 3rd-party software as end-users, I am sure of which one their managers will prefer.

I believe it will eventually happen, whether with SOTA local models on highly capable local hardware, or super cheap inference APIs... or both.

reply
I've gone back and forth on this.

A couple of years ago LLM prompts really were incredibly cheap and falling in price. OpenAI's own models had fallen in cost by a factor of about 1000x since GPT-3.

They were also cheap because many of the things you might want to do with an LLM took in the order of a few thousands tokens, at most.

Then coding agents happened, and suddenly we had a reason to burn 100,000s or even millions of tokens on a single task. Stuff got expensive!

(Classic Jevon's paradox right there.)

It feels to me like that's trending back down again though. DeepSeek and Kimi are massively less expensive than OpenAI and Anthropic, and almost as useful.

OpenAI dropped the price of Luna by 80% the other day, and it's proving very capable of exploring codebases and generating quite competent code.

So I don't think advanced AI that can help debug and maintain software will stay out of the reach of most people for very long.

reply
> So I don't think advanced AI that can help debug and maintain software will stay out of the reach of most people for very long.

But then what stops the upstream tools from doing exactly the same thing and getting the same speedups? I've certainly seen AI become a huge boon in my debugging experience for random user reports for example.

FWIW if we are talking about hyper personalized software like the OP, it's going to quickly go beyond "debug and maintain" and towards bigger issues like UX, ergonomics, features etc. And at that point, if the upstream is also being developed you will have differences between your personal visions and upstream

Is the answer at that point "accept whatever AI does"? That to me seems to clash with the entire premise of hyper-personalization which is where your vision is what matters not the AI's. Do you really want to get into the game of having opinions on design of every tool you use forever?

reply
> Do you really want to get into the game of having opinions on design of every tool you use forever?

Yeap. Most users want someone else to think for them. Not just "something" (AI). Having a vision on what works best (design) is still, for the time being, a human task IMO.

reply
[flagged]
reply
> Several times a day I'll prompt regular Claude chat to "Clone x/y from GitHub and tell me how Z works".

In principle, you should not need the source code: the AI should be able to answer by examining the binaries.

reply
I mostly work with Python, and often coding agents answer questions about dependencies for me just by digging around in the site-packages folder in whatever virtual environment they have access to.

The "clone X and tell me" trick is something I mostly use on my phone - I can answer questions about pretty much any piece of software on GitHub with a regular Claude session, no coding agent needed.

reply
> Several times a day I'll prompt regular Claude chat to "Clone x/y from GitHub and tell me how Z works"

We built a free tool to help with this workflow! Just prepend "ask" to any public github repo and get a chat box to ask questions on it :)

For example: https://askgithub.com/openai/codex

reply
> Most people can't justify the time commitment needed to read and then modify the code for tools they use very often.

A lot of modern open source software is often written in dependency heavy languages.

So to do a "proper" examination, by definition you need to consider the dependencies as well as the core code itself. We all know how supply-chain attacks are on the rise.

reply
This is in my opinion the single most important revolution that will come from llm in the dev space. Not vibecoding or replacing entire teams.

Its this and also the ability for non dev to create their own little tools (for productivity, entertainment, family life, whichever).

I think they will put back the "personal" in personal computing

reply
> Most people can't justify the time commitment needed to read and then modify the code for tools they use very often.

Hell, even when I can justify the time commitment for that, I can't justify the ongoing maintenance burden of fixing up my patches to work on the latest version every release or major security fix...

reply
Do you verify the reply on how Z works too?
reply
[flagged]
reply
[flagged]
reply
[flagged]
reply
I wasted time trying to understand sarcasm instead of being given a clear point to read. Bad human.
reply
> I wasted time trying to understand sarcasm

Skill issue.

reply
What do you mean by this?
reply
I think they're suggesting that because I blog about AI I get free tokens and don't have a conception of how much they cost?

I currently spend $100/month on OpenAI and $200/month on Anthropic.

(I often get free tokens as part of preview access to models, but I'm not allowed to share any code written by those models online for the duration of the preview. Most of my work is open source, so I can't actually do much with those free tokens!)

reply