Skip to main content

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 a Vocabulary's to declare. Open reserves nothing; a vocabulary of your own is proven through the same conformance table the agent one is.
  • onemessagebus-agent — the agent profile: the sources agentgraph, vcs, pipeline; the phase dimension; the reserved labels run_id, round, node, step, member, persona; and the schema families the stack registers (agent.event-envelope at [2, 1], and the note, the labels, the filter and the artifact reference at 1). Its types serialize to the bytes oneagentgraph, onevcs and onepipeline write today, which the recorded streams under crates/onemessagebus-agent/tests/recorded/ prove byte for byte.
  • onemessagebus, the binary — schema list|check|gen|register over the registry, schemas with schemas clear|fetch over the cache of schema bundles a configuration links by URL, events merge|emit over streams with --profile agent (the default) or --profile open, deliver and inbox carried over the inbox — a typed channel into a running process whose sender learns what the receiver did with each message — and send, next, reply, subscribe and status over durable queues kept on a transport a configuration names — under a layout a linked schema bundle declares as data, or one a program links — with transports listing the kinds a transport can be, ask raising a question and waiting for the one reply that echoes its correlation, validate judging a record by a queue's validators before anything is sent, and serve answering a a configured member protocol's frames. The local transport keeps each queue as plain files in one directory, 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.

Use the SDKs

pip install onemessagebus              # Python: import onemessagebus
npm install @onemessagebus/sdk         # TypeScript

Both are typed clients over the binary — one method per verb, message types declared as a Pydantic model or with Zod's defineMessage, subscriptions over a resident core — so a message defined in Python is validated by the Rust core and read typed in TypeScript. docs/sdk.md is the whole story.

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.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for onemessagebus-cli 0.8.0
File
onemessagebus_cli-0.8.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
onemessagebus_cli-0.8.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.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
onemessagebus_cli-0.8.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
onemessagebus_cli-0.8.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 20.7 MB

Release files / onemessagebus_cli-0.8.0-py3-none-win_amd64.whl

Download URL onemessagebus_cli-0.8.0-py3-none-win_amd64.whl
Size 4.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a32d9c5bf3c708f2b9281708addb89d6e6472dc98f509e3fdd2f1fd53ceb3c13
BLAKE2b-256 checksum
How to use checksums
821183aae160e6804b6f2789815520f803122fb0f4f025021d2760360730e132
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.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL onemessagebus_cli-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
504a8eeaf37b225018e58a737f83c5c497d16530f1865b1118ea46b42b1b4c93
BLAKE2b-256 checksum
How to use checksums
c6bfd2faae303757c3a4311b788f897f7db3f56e3913da51ac8f740ff458425c
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.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL onemessagebus_cli-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
57bccf3b68b7b3e7b21d938513d78bc81010eddbf68b23c89c782c1379546683
BLAKE2b-256 checksum
How to use checksums
71034a5a64cfc3bd85e60136897a8a24ef3bee6adc1f44a0d0cba3edc65a09a7
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.8.0-py3-none-macosx_11_0_arm64.whl

Download URL onemessagebus_cli-0.8.0-py3-none-macosx_11_0_arm64.whl
Size 3.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
773e41fc518c82338d8947c03807ecff0f9d378ff00dbbb597db34d6c781003b
BLAKE2b-256 checksum
How to use checksums
2c368d9d0e58a94154ae31a65e67d5ceacdbec3cabc9b1b91ee5125505810255
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.8.0-py3-none-macosx_10_12_x86_64.whl

Download URL onemessagebus_cli-0.8.0-py3-none-macosx_10_12_x86_64.whl
Size 4.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3335523c26a3375d3f2a35e1256716d131d1b290d989d7635a4b0a2d450312ed
BLAKE2b-256 checksum
How to use checksums
ce688c1286f6d3cbc641d7b48f3b838652f611aeeb4d16279468980edac91019
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.9.0

5 release files

This release

0.8.0 This release

5 release files

0.7.0

5 release files

0.6.0

5 release files

0.5.0

5 release files

0.4.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page