this post was submitted on 03 Mar 2026
116 points (95.3% liked)
Programming
25896 readers
242 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
WTF? According to the project page on github, at least some of it is AGPL. It can't have restrictive "terms of service" on top of that!
Let me introduce you to the magical concept of the CLA. It means they can do whatever they want with the project but you can not. You should never contribute to CLA projects.
The CLA can never override the code license. It handles the transition of your code into their code, and what they can do with it. But once it's published as AGPL, you or anyone else can fork it and work with it as AGPL anyway. The CLA can allow them to change the license to something different. But the AGPL published code remains published and usable under AGPL.
I'm usually fine with contributing under CLA. A CLA often make sense. Because the alternative is a hassle and lock-in to current constructs. Which can have its own set of disadvantages.
A FOSS license and CLA combination can offer reasonable good to both parties: You can be sure your contribution is published as FOSS, and they know they can continue to maintain the project with some autonomy and choices. (Choices can be better or worse for others, of course.)
I never said that you can remove a license retroactively. A CLA is an assignment of copyright from the contributor to the company. The only reason for a company to add a CLA to a project is to put a rug under the project which they will pull as soon as they gained a critical mass of users. It fundamentally undermines the social contract of open source development. These companies want to enjoy all the benefit of open source, like the market appeal and the free labour, but none of the drawbacks. A CLA is just one thing, a promise that the project will go non-free in the future.
Oh, yes it can. The license only changes what other people than the owner may do. It's the rights and conditions they give you.
For most projects that doesn't matter because there are several owners of the code base. Every single person who contributed can enforce these rights on their part. However, to contribute to Zed you have to sign a cla. Signing away all rights and ownership of your contribution. So they have all the rights and can do whatever they want.
They could close source everything tomorrow without any consequence and sell you a feature you made yourself.
That's all true except for that last paragraph - the rights and conditions they gave you to existing code are irrevocable, so you'll continue to be able to use the last open source version indefinitely, including the feature you made yourself. It's just that they can release new versions and not publish the source code of their additions, even if that new release also includes a feature you made yourself.
(I'm not a lawyer, but still.)
They have some functionality for which you can login, and only at login are you asked to agree to the terms. Presumably you can just use the offline functionality of the editor just fine without agreeing to anything other than the AGPL.
This is perfectly fine to me. The only features that require an account are AI and chat, two features which make perfect sense to have an account for.
I personally don't even use these features. In fact, I have this in my zed settings.
I suspect they draw a distinction between using their built binary and logged in services like collaboration from the editor code itself, but iinal.