Open Memory Protocol (OMP) is a language-neutral protocol for portable agent memory.
The repository is the normative protocol source for OMP v1 draft. Product implementations such as memorose can implement OMP, but they do not define the protocol.
spec/: normative human-readable specification.schemas/: JSON Schema fixtures for canonical OMP objects.schemas/openapi/: OpenAPI contract for the Runtime REST binding.packages/examples/: portable package fixtures.packages/omp-conformance/: conformance levels, checklist, and example declarations.
OMP v1 has two first-class interoperability surfaces:
- Open Memory Package: directory + JSONL format for export, import, backup, restore, audit, and migration.
- Open Memory Runtime REST API: service API for live memory writes, reads, search, context assembly, governance, sync, and conflicts.
The protocol is language-neutral. Future TypeScript, Python, or other SDKs should be reference implementations or convenience libraries, not replacements for the spec.
- Read spec/README.md.
- Compare your objects with spec/data-model.md.
- Implement package import/export from spec/package-format.md.
- Implement Runtime REST behavior from spec/runtime-rest.md.
- Declare support using spec/conformance.md.
Run:
bash scripts/validate-fixtures.shThe script validates JSON, JSONL package records, OpenAPI YAML parsing, and the example package checksum manifest.
Current version: 1.0-draft.
Draft fields may still change before OMP 1.0, but these decisions are intended to remain stable:
- Package and Runtime are both first-class.
- Runtime is REST-first.
- Package is directory + JSONL by default.
- Core identity is
object_type,id, andnamespace. - Cross-object references use
ObjectRef. - Capability and conformance declarations are machine-readable.