musubi-harness
The host-neutral Musubi memory runtime — the shared core that every
musubi-* family host adapter depends on.
| Adapter | Repo |
|---|---|
| Claude Code | sourceblender/musubi-claude |
| Codex | sourceblender/musubi-codex |
| LiveKit | sourceblender/musubi-livekit |
| Hermes | sourceblender/musubi-hermes |
| OpenClaw | sourceblender/musubi-openclaw |
What this package is
musubi-harness is the single source of truth for the host-neutral
contract every Musubi seat adapter must honor:
- Capture policy. What is and is not a load-bearing turn envelope.
- Outbox. A per-identity, per-zone SQLite store of shadow records.
Stage → drain → readback → receipt.
shadow,pending,accepted,verified,dead— each is a distinct state and the contract says so. - Delivery. Verified delivery only after a canonical readback returns
the exact
object_id.queuedis a durable local promise;verifiedis the receipt. Never collapse the two. - Resolution. Terminalization of legacy ambiguity with versioned operator evidence.
- Namespace policy.
actor == presence-prefix; one seat cannot read or write under another seat's namespace. - Identity. Env or
$PLUGIN_DATA/config.json— all-or-nothing, never derived from the host.
What it is not: a host binding. There is no MCP server, no Claude hook, no Codex hook, no OpenClaw manifest here. Those live in the adapter repos. This package is the substrate they all stand on.
What this package gives you
Three Python imports + two console scripts.
Imports
from musubi_harness import (
# Capture
CaptureDecision, CapturePolicy, TurnEnvelope,
# Outbox + delivery
Outbox, DeliveryStore, Drainer, DeliveryClient, MemoryDataClient,
DeliveryJob, Readback, ReceiptLookup, canonical_request_digest,
DeliveryNonMutatingRejection, DeliveryTerminalError, DeliveryTransientError,
CAPTURE_CONTENT_TYPE, CAPTURE_OPERATION_ID,
# Plugin contracts
PluginRuntime, RuntimeConfig, RuntimeConfigError,
PluginMcpFacade, PluginContinuity,
# Resolution
BoundaryEvidence, LiveReceiptObservation, LiveTypedNonMutatingRejection,
OperatorAbandon, ProvenNonMutatingRejection, ReceiptObservation,
ResolutionEvidence, parse_resolution_evidence,
RESOLUTION_KINDS, LIVE_REJECTION_SCHEMA_VERSION, RESOLUTION_SCHEMA_VERSION,
)
Console scripts
After pip install musubi-harness:
musubi-harness --db <path> <command> [...]
musubi-harness-conformance --source <name> [--file <jsonl>]
musubi-harness subcommands:
enqueue, status, inspect, stage, remember, delivery-status,
resolve, drain.
Installation
pip install musubi-harness
That installs the package, the two console scripts, and nothing else. The harness has no runtime dependencies beyond the Python standard library — every transport-specific dep belongs in the adapter that uses it.
Versioning
Semver. 1.x.y is the long-lived stable line that the host adapters
already pin against. Breaking changes to musubi_harness API surface
require a 2.0.0.
Cross-adapter invariants
The harness exists so that every seat adapter — Claude Code, Codex, LiveKit, Hermes, OpenClaw — ships the same memory contract. To keep that promise:
- Never import from a host adapter in this package. The dependency
arrow points one way:
adapter → harness, never the reverse. - Never collapse
queuedandverified. A local row is a promise; a verified row with an exactobject_idis a receipt. - Never derive identity from the host. Env or config, all-or-nothing.
- Never silently swallow failure. Anything that goes wrong with
capture or delivery must be visible (typically in the adapter's
degraded.jsonl) but must not break the host session.
Development
git clone https://github.com/sourceblender/musubi-harness
cd musubi-harness
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
ruff check src tests
mypy src
pytest
CI is ruff + mypy --strict + pytest on Python 3.12. Release is
managed by release-please; merging a release-please PR publishes to
PyPI as musubi-harness.
License
Apache-2.0.
Release files for musubi-harness 1.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| musubi_harness-1.3.2.tar.gz | 47.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| musubi_harness-1.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.4 kB
Release files / musubi_harness-1.3.2.tar.gz
| Download URL | musubi_harness-1.3.2.tar.gz |
|---|---|
| Size | 47.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1e7e9325e0e8660fb4196fb1193df0013431440c265d6ee25f40d9018a5a68c4
|
|
BLAKE2b-256 checksum How to use checksums |
ce815bfd3178e90288543788a5bb3a04a2b44020e73768fc82d3dfbb3d4cfe73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / musubi_harness-1.3.2-py3-none-any.whl
| Download URL | musubi_harness-1.3.2-py3-none-any.whl |
|---|---|
| Size | 52.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e14ff7827b1397618e230ea26b3db5b431b5d4bb695daa1bd74ea339b980049a
|
|
BLAKE2b-256 checksum How to use checksums |
7f87915f4ca7705edbfe60037a7fe1604c4d9f66eead86cfd58232a45133e1cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log