OpenRoots

Apply

Five steps.

Everything here is copy-paste. Placeholders are capitalised so a search finds anything unfilled. Applying an instrument costs nothing and requires no permission, registration or notification.

Step one

Pick the instrument that matches the artifact.

A dataset and a model carry obligations a code licence has no vocabulary for. Pick by artifact type.

Source code, libraries, applications, CLIsORL-2.2
Datasets, corpora, structured collectionsORD-2.2
Model weights, checkpoints, fine-tunesORM-2.2
Agents, skills, prompts, tool definitions, workflowsORA-2.2

Step two

Put the canonical text at the repository root.

Fetch the canonical bytes. The published digest verifies the copy.

curl -o LICENSE https://openroots.org/licenses/orl/2.2/legalcode.txt

Verify the bytes match what was published. If the digest differs, the copy is not the instrument and should not be relied on.

shasum -a 256 LICENSE

Step three

Add NOTICE and attribution records.

Every copy should preserve the OpenRoots notice, the licence version, upstream notices, and third-party licence text in a place a recipient can actually find.

A good attribution surface is a visible list of components, upstream URLs, copyright notices, and the complete licence text for each dependency. The OpenRoots templates treat that as a compliance surface, not an afterthought. The full NOTICE template, plus provenance manifests, model cards and dataset cards, are on the templates page. Every one of them is a complete file rather than a fragment.

Step four

Declare it in package metadata.

Until an SPDX identifier is granted, LicenseRef is the correct string. It is valid SPDX today and swapping it for a granted identifier later is a one-line change.

npmpackage.json
"license": "LicenseRef-OpenRoots-ORL-2.2"
PyPIpyproject.toml
license = { text = "LicenseRef-OpenRoots-ORL-2.2" }
CargoCargo.toml
license = "LicenseRef-OpenRoots-ORL-2.2"
GoLICENSE at module root
The canonical plain text, unmodified.
Mavenpom.xml
<licenses><license><name>OpenRoots License 2.2</name><url>https://openroots.org/licenses/orl/2.2/</url></license></licenses>
Hugging FaceREADME.md front matter
license: other
license_name: orm-2.2
license_link: https://openroots.org/licenses/orm/2.2/

Step five

Get a certificate, so the claim is checkable.

A licence file states your terms. A certificate proves the file is really there, because it is issued only after the file in your repository is read and hashed at a named commit.

Sign in on the dashboard with GitHub, pick a public repository you can push to, and issue it. Nothing is typed in: the instrument, version, commit and digest are all read from the file itself, so anyone can fetch that file at that commit and reproduce the hash. It is re-checked every day and lapses if the file changes or disappears.

You get a certificate page, a JSON record, and a seal to paste beside your badge. Google sign-in works for looking around, but issuing needs GitHub, because only GitHub can prove the repository is yours.

Optional but recommended

Declare AI usage preferences alongside the licence.

AI Training Use is outside the base grant and requires a separate Compute licence. The machine-readable preference says training is available on stated terms; it does not grant permission by itself.

Content-Usage: train-ai=y, search=y
OpenRoots-Terms: instrument=ORD-2.2; credit=required; provenance=required; threshold=20000000; rate=0.005; cap=250000; disclosure=model-card; ai-training=separate-compute-licence; competing-offering=separate-written-agreement; competing-offering-scope=all-licensees; fallback=none; conversion-months=none
Link: <https://openroots.org/licenses/ord/2.2/>; rel="license"

The first line is the IETF vocabulary, which is binary allow or disallow per category. The second carries the terms that binary has no field for, which is the same job Creative Commons signals does. The reasoning behind emitting both is on the namespace page.

What you are agreeing to

The short version, so nothing is a surprise later.

  • Royalty-free below the threshold

    No Canopy payment or report below USD 20,000,000. Internal development and evaluation are outside Production Use; internal operation at production scope can be Production Use under Section 1.9.

  • Credit and notices stay

    Attribution and notice preservation are owed at every tier, including the free one.

  • Terms that never expire

    The version you attach governs that release permanently. Nothing about it changes by time alone, and no later version applies unless you adopt it.

  • No competing resale

    You may build with the work, but selling, porting, hosting, repackaging, or redistributing the work itself as a substitute needs a separate written agreement.

  • Recipients get the full grant

    You may not impose a term on someone downstream that the instrument does not itself impose.

4 instruments are published. Full terms are in each legalcode.

After it is applied

Say so on your README.

A badge states which instrument and version governs your work and links back to the deed, so a reader can check the terms without leaving the page they are on.