Motebit

Public surface

What motebit promises stability for, what it doesn't, and where the boundary is drawn.

Motebit is a protocol-first project. The protocol specs are the canonical integration surface; the published npm packages are supported convenience surfaces over that protocol. Eleven packages publish at 1.0.0; everything else in the monorepo is workspace-internal and carries no version surface to claim. This page names the boundary explicitly so a reader can tell, at a glance, what they can build against.

Three layers

LayerLicenseWhatPublic promise
Math / formatApache-2.0Types, primitives, canonical forms, semiring algebraYes — third parties build against this
Judgment / engineBSL-1.1The actual algorithms — market, semiring, runtime, mcp-server, memory-graph, …No. Source-available so you can read or fork; not stabilized for direct consumption
Accumulated statePrivateTrust graph, federation routes, signed audit ledgerNever licensed

The three-layer split is doctrine, not preference. It's what lets the protocol stay open while the implementation stays free to refactor.

What's published

Ten Apache-2.0 packages — the permissive floor. Anyone can implement against these in any language without permission. Each carries an explicit patent grant.

  • @motebit/protocol — types, semirings, routing primitives, crypto-suite registry
  • @motebit/sdk — developer contract; stable types and adapter interfaces
  • @motebit/crypto — sign and verify every motebit artifact
  • @motebit/verifier — programmatic verification library: verifyFile / verifyArtifact / formatHuman. The -er suffix marks it as the agent-noun ("the thing that performs verification"); reach for it when writing Node code that consumes signed artifacts.
  • @motebit/verify — the motebit-verify CLI binary, bundling the four platform leaves with motebit-canonical defaults. Reach for it when running motebit-verify from a terminal or CI step.
  • @motebit/crypto-appattest — iOS App Attest chain verifier
  • @motebit/crypto-play-integrity — Android Play Integrity verifier
  • @motebit/crypto-tpm — Windows / Linux TPM 2.0 verifier
  • @motebit/crypto-webauthn — WebAuthn packed-attestation verifier
  • create-motebit — scaffold a signed identity or runnable agent service

One BSL-1.1 package — the reference runtime. The motebit CLI bundle is the operator-facing product, source-available now and converging to Apache-2.0 four years after each version's release.

  • motebit — REPL, daemon, delegation, MCP server, relay-mediated marketplace

The public promise of motebit@1.0 is its bundled operator-facing surface — subcommands, flags, exit codes, ~/.motebit/ layout, relay HTTP routes, MCP server tool list. Not the internal package graph.

What's not published

Fifty-one workspace-private packages are pinned to version 0.0.0-private. The sentinel makes the absence of a semver claim explicit — these packages exist for source organization, get bundled into motebit, and have no public API to keep stable. Examples: @motebit/runtime, @motebit/market, @motebit/semiring, @motebit/mcp-server, @motebit/memory-graph, @motebit/policy. You can read the source. You can fork the repo. You cannot npm install them, and motebit makes no promises about their internal APIs from one release to the next.

This isn't laziness about API design. It's the inverse: every package promoted to public adds a permanent maintenance surface, locks refactoring decisions, and converts internal cleanups into political major-bumps. Motebit promotes private to public only when a real third party needs it — not when a doc page would be tidier with the import statement.

How to integrate

Three paths, in order of how much motebit you take with you:

  1. Implement the spec. Twenty-one open specs in spec/. Build a runtime in any language; motebit's reference relay will federate with it if your handshake verifies. The Python reference verifier under examples/python-receipt-verifier is the load-bearing demonstration that the spec is sufficient — written against the spec alone, no motebit TypeScript consumed.

  2. Build against the Apache-2.0 floor. Import @motebit/protocol, @motebit/sdk, @motebit/crypto directly from npm. Verify identity files, parse receipts, compose semirings, compute optimal paths. The full type surface is fixed by the api-extractor baselines at packages/{protocol,sdk,crypto,verifier,verify}/etc/*.api.md — every break requires a major changeset.

  3. Run motebit and use its operator surface. Install the bundle via npm install -g motebit. The CLI subcommands, flags, exit codes, ~/.motebit/ layout, and relay HTTP routes are stable per the operator-surface check (check-cli-surface). The internals can refactor freely; the surface holds.

For the implementation-detail-level documents under /docs/developer/, assume any code block whose imports name a workspace-private package is a reference-implementation example, not a recipe. Those pages explain what motebit's reference runtime does internally; they're not promises about what you can npm install.

On this page