I’ve typed “MIT licensed” and “Apache 2.0” into more posts than I can count on this site without ever explaining what the practical difference actually is, so here’s the version I’d have wanted when I started.
MIT is the simplest one: do basically anything with the code — use it, modify it, sell it, embed it in a closed product — as long as you keep the original copyright notice attached somewhere. No patent language, no conditions on how you distribute changes. It’s the default for small libraries because it creates zero legal friction for anyone downstream.
Apache 2.0 does almost the same thing MIT does, plus one addition that matters more than it sounds like it should: an explicit patent grant. If a contributor’s code happens to cover something they’ve patented, Apache 2.0 grants users a license to that patent too, and includes a clause that revokes it if you turn around and sue someone else over patents related to the project. MIT doesn’t address patents at all, which is exactly why most larger companies and foundations — the kind of organizations more exposed to patent disputes — default to Apache 2.0 instead. Cline, OpenCode, and most of what I cover here uses one of these two.
AGPL is a different category of license entirely — copyleft, not permissive. Regular GPL already requires that if you distribute modified code, you release your changes under the same license. AGPL closes what’s sometimes called the “SaaS loophole”: under plain GPL, a company could modify the code, run it as a hosted web service, and never distribute the binary at all — so never trigger the obligation to share source. AGPL specifically extends that requirement to network use. If you modify AGPL software and let people use it over a network, you have to release those modifications too, even if you never hand anyone a literal file. Warp’s terminal client uses exactly this license for precisely that reason — it lets the code stay genuinely open while making it much harder for a well-funded competitor to quietly fork it into a closed commercial product.
None of this tells you whether a project is actually open in the way it presents itself, which is really the theme I keep circling back to on this site. A permissive MIT license on a model’s weights doesn’t mean the application built around those weights is open too, which is exactly the confusion around ZCode. And a license with genuinely open terms on the visible layer doesn’t guarantee the layer that actually matters is included — Warp’s AGPL terminal client sits right next to Oz, the proprietary platform doing the actual agentic work, licensed under nothing open at all. The license tells you what you’re legally allowed to do with the code in front of you. It doesn’t tell you how much of the actual product that code represents.