ADR 0009 · License prospero under AGPL-3.0-only
- Status: accepted
- Date: 2026-07-05
- Source: prospero #73 · in force since the prosperod image work (P0 #62,
workspace.package.license = "AGPL-3.0-only") · relates to 0002
Context
Prospero shipped its workspace with license = "AGPL-3.0-only" (set alongside
the prosperod container image, P0 #62) but never recorded why — the decision
lived only in a Cargo.toml field and a commit message. Prospero is a
network-facing control plane (0002):
its primary deployment shape is a long-running daemon (prosperod) plus a
dashboard that users reach over the network, increasingly in-cluster (the k8s
epic, 0008). A license needs recording as an ADR so
the choice — and its obligations — are explicit for contributors and operators.
Options weighed:
- AGPL-3.0-only. Strong copyleft whose §13 network clause extends the source-availability obligation to users who interact with a modified version over a network, not only to those who receive a binary. Matches the rest of the caliban-ai stack (caliban, gonzalo), which is AGPL.
- A permissive license (MIT/Apache-2.0). Maximizes adoption and frictionless embedding, but lets a network operator run a modified prospero as a service without ever sharing changes — the exact gap AGPL closes, and the wrong default for a network control plane.
- GPL-3.0-only. Copyleft but without the network clause, so a hosted (SaaS) prospero could diverge privately — strictly weaker than AGPL for this deployment shape.
Decision
We will license all prospero crates under AGPL-3.0-only, matching the
caliban-ai stack. workspace.package.license = "AGPL-3.0-only" is the source of
truth; every crate inherits it via license.workspace = true. Network use of a
modified prospero carries the AGPL §13 source-availability obligation.
This ADR records a decision already in force; it changes no code.
Consequences
- Positive: the copyleft obligation reaches network users of a modified prospero (its dominant deployment), keeping hosted forks source-available; the whole stack (caliban/gonzalo/prospero) shares one coherent license story; the rationale is now discoverable, not buried in a manifest field.
- Negative: AGPL deters some downstream adopters (notably orgs with policies banning AGPL dependencies), narrowing embedding/commercial-integration reach; contributors must be comfortable with copyleft.
- Revisit if: a dual-licensing or commercial-exception model is needed for adoption, or the stack's license stance changes — at which point this ADR is superseded rather than edited (ADRs are immutable once accepted).