Contributing a provider
Add a new harness or model endpoint by shipping a signed manifest - no core change.
A third party can add a new model endpoint (a company) or a new harness (a loop driver) without changing donmai's core. You ship a signed manifest; the registry computes the new valid cells against the existing axes automatically and they appear in the capability matrix - no change to donmai's core, no lock-step release.
This page is the friendly summary. The authoritative contract is the OSS architecture corpus:
- Plugin manifest + provider-family registration -
015-plugin-spec.md - The two-axis contract (harness / model-endpoint families, the cell
intersection rule) -
ADR-2026-06-06-two-axis-provider-model.mdand002-provider-base-contract.md
What you declare
A model-endpoint registration names the company and declares, per serving
host: the wire protocol, the supported auth modes, and the cost model. A
harness registration declares the agent-loop capabilities plus its drive
surface - which wire protocols and hosts it can drive. The registry validates a
harness × model-endpoint cell only when the harness's drive surface intersects
the endpoint's protocol and host; you never hand-author cells.
The zero-code path
The safest contribution requires no Go: ship a model-endpoint manifest with
an OpenAI-compatible protocol and a remote baseUrl. donmai's built-in
OpenAI-compatible client calls out to your endpoint; the daemon holds the key
and calls out, so your service never receives donmai's credentials. Existing
OpenAI-compatible harnesses (such as OpenCode) bind your endpoint immediately.
Verified vs community
Listings are two-tier:
- verified - probed and allowlisted; included in the curated capability matrix.
- community - signed and installable, flagged unverified, and excluded from the curated matrix.
Both are real, installable providers. The tier governs trust and whether the cell appears in the published matrix, not whether it works.
Checklist
- Write
donmai-plugin.yamlwith yourmodel-endpoint(and/orharness) registration - see015-plugin-spec.mdfor the field reference. - Sign the manifest (one canonical-JSON hash; verified at install).
- Confirm the cells you expect appear once the manifest resolves - the registry derives them from the protocol/host intersection.
- Submit for the verified tier if you want the cell in the published matrix.