Skip to main content

zer0dex

Give a long-running agent local recall without forcing every detail into its prompt: zer0dex pairs a small, human-readable memory index with semantic retrieval from a local vector store.

PyPI version Python CI License

0.1.0 is the first supported developer-preview line. The project remains Alpha: expect refinement, but migration notes will precede documented breaking changes during the 0.1.x line. See the compatibility policy.

zer0dex preview

Who needs it

zer0dex is for agent and framework developers who:

  • run agents locally and need memory to persist across sessions;
  • want a compact index that people can inspect and edit;
  • need semantic retrieval for details that do not fit in that index; and
  • can add one local HTTP lookup before a model call.

It is especially useful when a flat MEMORY.md has become too large, while a vector store alone makes it hard to see what knowledge exists or how topics relate.

Why two layers

The markdown layer is a semantic table of contents: keep categories, durable summaries, and cross-topic pointers there. The local mem0/Chroma layer holds the retrievable details. Your agent host keeps the index in context and queries the HTTP server for the current message, then decides how to inject the returned matches.

The package supplies the CLI and local server. It does not install or run a pre-message hook; wiring the query into model calls remains an agent-host step.

First success

Requirements and tested support:

  • Python 3.11 or 3.12 (the package declares Python 3.11+; later versions are not yet covered by CI);
  • Ollama installed and serving locally at http://localhost:11434;
  • the local nomic-embed-text and mistral:7b Ollama models; and
  • enough local memory and disk for those models and the Chroma store.

The package install includes mem0ai, ChromaDB, and the Ollama Python client. The default path requires no hosted memory service or cloud API key.

python -m venv .venv
source .venv/bin/activate
pip install zer0dex

ollama pull nomic-embed-text
ollama pull mistral:7b

printf '%s\n' '# Memory' '## Project Atlas' '- Deployment target: staging' > MEMORY.md
zer0dex check
zer0dex init
zer0dex seed --source MEMORY.md
zer0dex serve --background
zer0dex query "Where does Project Atlas deploy?"
zer0dex add "Project Atlas deploys from the release branch"
zer0dex status

This creates .zer0dex.json and a local .zer0dex/ store in the working directory. Stop the background server using your operating system's process controls when finished.

Integration surface

The shortest host integration is an HTTP POST /query before each model call. Use the returned memories as additional context according to your own prompt and trust policy. The server also exposes POST /add and GET /health.

Exact commands, options, response fields, errors, and compatibility promises live in the reference documentation:

Evidence and limits

The bundled evaluation compares a compressed index, vector retrieval, and the dual-layer combination on one 86-memory, 97-case workload. In that workload, zer0dex reached 91.2% average recall and 80.0% cross-reference recall.

Those figures are workload evidence, not a general performance guarantee. The evaluation uses one memory store, cases derived from that store, a single-run score without confidence intervals, and hardware-specific latency. It does not establish behavior at thousands of memories, across domains, or inside your agent's prompt and tool stack. Re-run the evaluation on representative data before choosing thresholds or making production claims.

Non-goals

zer0dex is not:

  • hosted memory infrastructure or a multi-tenant service;
  • a complete agent framework or automatic hook installer;
  • a compliance, access-control, privacy, or governance system;
  • a guarantee that retrieved text is true, safe, or appropriate to inject; or
  • evidence that the bundled benchmark transfers unchanged to another workload.

Treat source documents and retrieved memories as data with the same sensitivity and trust boundaries you apply elsewhere in your agent.

Development

git clone https://github.com/hermes-labs-ai/zer0dex.git
cd zer0dex
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests/ -q

See CONTRIBUTING.md for contribution guidance and the changelog for release history.

Citation

@misc{bosch2026zer0dex,
  title={zer0dex: Dual-Layer Memory Architecture for Persistent AI Agents},
  author={Bosch, Rolando},
  year={2026},
  url={https://github.com/hermes-labs-ai/zer0dex}
}

License and credits

Apache-2.0. zer0dex uses mem0 for the memory abstraction, Chroma for local vector storage, and Ollama for local embedding and extraction models.

zer0dex is maintained by Hermes Labs, an independent AI reliability research lab.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zer0dex-0.1.0.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zer0dex-0.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file zer0dex-0.1.0.tar.gz.

File metadata

  • Download URL: zer0dex-0.1.0.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zer0dex-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5c1777c711b9933485b3f4fc7adbbda603ffd17cd7fb5015e53311a26dc35865
MD5 3ae040428ebe72517eab931502dc3aae
BLAKE2b-256 52f7eed693e89bd9ca7db6393cf9187f24501a376f4f55379722953fa5f4501b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zer0dex-0.1.0.tar.gz:

Publisher: publish.yml on hermes-labs-ai/zer0dex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zer0dex-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: zer0dex-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zer0dex-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d00bb616410b93c0c355bbed0de0b74a5b4da402d501744f3b1aa263b1b2b52
MD5 f1819093140f80d223080e2433840e7b
BLAKE2b-256 2cb3dcac88e089784512ee5b1bdb1fb31d36051d34b2ac6be32d2f5bdb96fc4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zer0dex-0.1.0-py3-none-any.whl:

Publisher: publish.yml on hermes-labs-ai/zer0dex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page