onemessagebus
A typed NDJSON message bus for agent communication — and for anything else that speaks in events. One envelope, one filter grammar, payload bounds and redaction, a schema registry with version read-sets, and an emitter and reader over streams, generic over the vocabulary a consumer declares.
Three artifacts:
onemessagebus— the core library. It knows the shape of an envelope and none of the words: which sources exist, which label keys are reserved and which top-level dimensions an envelope carries are aVocabulary's to declare.Openreserves nothing; a vocabulary of your own is proven through the same conformance table the agent one is.onemessagebus-agent— the agent profile: the sourcesagentgraph,vcs,pipeline; thephasedimension; the reserved labelsrun_id,round,node,step,member,persona; and the schema families the stack registers (agent.event-envelopeat[2, 1],agent.reply-envelopeat[3, 2]). Its types serialize to the bytesoneagentgraph,onevcsandonepipelinewrite today, which the recorded streams undercrates/onemessagebus-agent/tests/recorded/prove byte for byte.onemessagebus, the binary —schema list|check|gen|registerover the registry,events merge|emitover streams with--profile agent(the default) or--profile open,deliverandinbox carriedover the inbox — a typed channel into a running process whose sender learns what the receiver did with each message — andsend,next,reply,subscribeandstatusover durable queues kept on a transport a configuration names, withtransportslisting the kinds a transport can be,askraising a question and waiting for the one reply that echoes its correlation,validatejudging a record by a queue's validators before anything is sent, andserveanswering aonejudgemember's frames as its judge side. The local transport keeps the planner channel's files byte-compatible withonepipeline, and a distributed one is a plugin rather than a consumer change.
Install the command line
pip install onemessagebus-cli # PyPI wheel, no toolchain needed
npm install -g onemessagebus-cli # npm launcher, no toolchain needed
cargo install --git https://github.com/nickderobertis/onemessagebus onemessagebus-cli --locked
$ echo '{"note":"hello"}' | onemessagebus events emit run.ndjson --kind note-left --stream s-1 --source vcs --label run_id=R
{"v":1,"ts":"2026-09-13T06:16:27.838Z","stream":"s-1","seq":1,"source":"vcs","kind":"note-left","labels":{"run_id":"R"},"payload":{"note":"hello"},"artifacts":[]}
$ onemessagebus events merge run.ndjson other.ndjson --filter '{"include":[{"source":"vcs"}]}' --format text
$ onemessagebus schema check agent.event-envelope@2 --file envelope.json
docs/cli.md is the whole command line; docs/wire.md
is the wire; docs/contract.md is the approved contract the
consumers restate from.
Use the library
use onemessagebus_agent::{Emitter, EventFilter, Labels, Source};
use serde_json::Map;
let emitter = Emitter::new("run-1", Source::Vcs, Box::new(std::io::stdout()))
.with_labels(Labels { run_id: Some("R".into()), ..Labels::default() })
.with_filter(EventFilter::parse(r#"{"exclude":[{"kind":"heartbeat"}]}"#)?);
let envelope = emitter.emit("push", Map::new());
assert_eq!(envelope.seq, 1);
Every wire value is a Rust type with serde and schemars derivations, and
the public API is stated in docs/contract.md.
Develop
just bootstrap # from a clean clone
just check # the deterministic gate: format, lint, tests incl. the binary journeys, docs, coverage
just gate # check plus the diff-scoped LLM-judge tier; the bar before a push
AGENTS.md is the instruction layer; just --list is the command surface.
Metadata
Release files for onemessagebus-cli 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| onemessagebus_cli-0.4.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| onemessagebus_cli-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| onemessagebus_cli-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| onemessagebus_cli-0.4.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| onemessagebus_cli-0.4.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 14.6 MB
Release files / onemessagebus_cli-0.4.0-py3-none-win_amd64.whl
| Download URL | onemessagebus_cli-0.4.0-py3-none-win_amd64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0b03d498805ce47338522a856a811a10ec6ab9df8e443bd3c2521404a69fa8e2
|
|
BLAKE2b-256 checksum How to use checksums |
0844f382ba3d65bdd3186d622f6d619a50364cc3a9b842cb0dd987a8273c01fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / onemessagebus_cli-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | onemessagebus_cli-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
610ff57c18d9c93b59392d089a0a01214b86d5b6a70f8fae9bb712731bf0b567
|
|
BLAKE2b-256 checksum How to use checksums |
230cbfa3172ca8d0be7f9433268f69ef3e06868205066d47b78eb6af2d5281e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / onemessagebus_cli-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | onemessagebus_cli-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
8ee30e39955921dde359dead197da890c3dd4fd4aa12a81105c51f92d49b4407
|
|
BLAKE2b-256 checksum How to use checksums |
e5dd5ff6b92455d61ba3371675f18f30ee1b08856b165e9a0d3b53253feb8ffe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / onemessagebus_cli-0.4.0-py3-none-macosx_11_0_arm64.whl
| Download URL | onemessagebus_cli-0.4.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b93c9e95e7179b6b8a56f2160780a9b855d18bf37ac3e27c1a8ddeb4a8a6a7eb
|
|
BLAKE2b-256 checksum How to use checksums |
da1f539bf7e0c2126536f69438b9ab49f5dda4451974486989404fe40a270e6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / onemessagebus_cli-0.4.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | onemessagebus_cli-0.4.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d09c4d7e95480c3ad948307ebb50db3dee9f0edde72bbf770e9076bcd9c47d38
|
|
BLAKE2b-256 checksum How to use checksums |
e67d6b346ab6f584fa9cd3bf349b9eab0c74ea9a5622745bc64df416d04f96fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|