Skip to content

Open source

Two licenses, split where the architecture already splits.

The engine is a contract meant to spread. The host is a product meant to be operated. The license map follows that line exactly, and a dependency direction is what makes it enforceable instead of merely tidy.

The map

What is licensed how, and why

PathLicenseWhy
src/monkeyllm/: the engine, the ten primitives, harvestApache-2.0The MCP contract is the asset. Embed it, ship it, build on it; the explicit patent grant is what lets a company do that without a legal review.
docs/ · tests/ · bench/ · scripts/ · examples/ · paper/ · deploy/Apache-2.0The spec, the benchmark and the deployment glue are only useful if everyone can copy them.
apps/station/: REST, MCP surface, governanceAGPL-3.0-onlySelf-hosting stays completely free. Offering it as a managed service means opening your service stack.
apps/studio/: the web consoleAGPL-3.0-onlySame reason: it is the operated product, not the contract.
apps/clipper/: the browser extensionAGPL-3.0-onlyA client of the Station, distributed by it, the same product, on the other side of the wire.

The root LICENSE is Apache-2.0 and covers everything except `apps/`; each package under `apps/` carries its own. Every source file states its license in an SPDX header, so a file that travels away from the repository keeps its terms.

The direction of the dependency is load-bearing

Apache-2.0 is one-way compatible with AGPL-3.0: an AGPL work may include Apache-2.0 code, never the reverse. So the host may depend on the engine, and the engine must never import from `apps/`. That was already true architecturally, because the Station is specified as a privileged client of the engine rather than an extension. The license split makes the same boundary a legal one, which means a violation is no longer only a design smell.

If you host a modified Station

AGPL-3.0 section 13 applies to network use: if you modify the Station or the Studio and let other people interact with it over a network, you must offer those users the corresponding source of your modified version. Running an unmodified copy for yourself or your organisation triggers nothing.

The commercial exception

The copyright is held by a single author, so the AGPL is not the only way to get this software. If AGPL-3.0 does not fit (you want to embed the Station in a closed product, or offer it as a managed service without opening your stack), a commercial license is available.

Talk about licensing

Contributing, and why the DCO matters

Contributions come in under Apache-2.0 on every path, including `apps/`, which the project distributes under AGPL-3.0-only. That inbound licence is what keeps the dual licensing possible: Apache-2.0 travels one way into an AGPL tree, so a permissively licensed contribution can be distributed under the AGPL and under commercial terms.

Read CONTRIBUTING.md
  • Every commit is signed off (`git commit -s`) under the Developer Certificate of Origin, and CI enforces it.
  • The DCO certifies where the code came from; the inbound licence decides what the project may do with it. Both are required: a sign-off alone would not make the dual licensing possible.
  • A contribution accepted under the AGPL alone would leave a copyright holder who never agreed to relicense, and the commercial option would quietly disappear, one merged pull request at a time.

About the numbers on this site

Every figure comes from committed scripts in the repository, and the paper describing them is a preprint, written, with the DOI deposit still pending. Two of its headline findings are failures against their original criteria, and they are written down rather than dropped: the troop buys accuracy rather than speed, and trail learning found no 25% to reclaim near the one-hop floor. The honest way to evaluate this project is to reproduce the 0/11 first; it takes one command, and it is the whole argument.

Take it, run it, fork it.

And if the license is the only thing standing between you and shipping, that is a conversation, not a wall.