Hermes Atlas
Memory & knowledge

zeromem

ptaranat/zeromem

Zero-token Rust agent memory with a Hermes Agent memory provider plugin

In short

zeromem is a Rust implementation of the Zero-Mem agent memory design that ships with a memory provider plugin for Hermes Agent. All memory operations apart from answering the final question use no LLM calls or tokens.

What zeromem does

zeromem is a Rust implementation of Zero-Mem (arXiv:2607.29377), an agent memory design in which every operation except final question answering makes zero LLM calls and uses zero tokens. Raw conversation turns are the source of record, and retrieval is structured search over them rather than generated summaries. It ships as a Rust crate, a zm CLI, a PyO3 Python module and a memory provider plugin for Hermes Agent.

Ingest indexes each turn as an entity-context graph, a temporal hierarchy and BM25 plus dense embeddings. A query builds a deterministic profile, routes to a primary view, fuses both retrievals and calibrates the evidence set, with defaults taken from the paper. Storage is a single SQLite file. In Hermes, setting memory.provider: zeromem makes the provider sync turns in a background thread, prefetch evidence before each turn and expose zeromem_recall and zeromem_stats tools. A Claude Code plugin with hooks and an MCP server is also included.

Key features

  • Zero LLM calls for ingest and retrieval
  • Entity-context graph, temporal hierarchy, BM25 and dense embeddings
  • Single SQLite file as the store
  • Hermes memory provider with background sync and per-turn evidence prefetch
  • zeromem_recall and zeromem_stats tools
  • zm CLI, PyO3 Python module and a Claude Code plugin with an MCP server

When to use it

  • Giving Hermes Agent long-term memory without spending tokens on summaries
  • Searching past conversation turns by entity and time
  • Sharing one memory store across Claude Code projects

Who it is for: Hermes Agent users who want a low-cost, deterministic memory layer, and developers interested in the Zero-Mem paper.

How it fits with Hermes Agent

It includes a dedicated Hermes Agent memory provider plugin, enabled with memory.provider: zeromem in ~/.hermes/config.yaml.

How to install zeromem

These commands are copied from the project's README. Check the repository for the latest steps before you run them.

ln -s $(pwd)/hermes/zeromem ~/.hermes/plugins/zeromem
uv pip install --python <hermes-python> target/wheels/zeromem_py-*.whl

Requirements: A Rust toolchain to build the crate; the default fastembed feature downloads the bge-small-en-v1.5 model (about 130MB) on first use

FAQ

What is zeromem?

zeromem is a Rust implementation of the Zero-Mem agent memory design. It indexes raw conversation turns and retrieves evidence with no LLM calls, and it ships a CLI, a Python module and a Hermes Agent plugin.

Does zeromem work with Hermes Agent?

Yes. It includes a Hermes memory provider plugin that syncs turns, prefetches evidence before each turn and exposes zeromem_recall and zeromem_stats tools once memory.provider is set to zeromem.

How do I install the zeromem Hermes plugin?

Symlink hermes/zeromem into ~/.hermes/plugins/zeromem and install the built zeromem_py wheel with uv pip install. Then set memory.provider: zeromem in ~/.hermes/config.yaml.

Similar memory for Hermes Agent

All memory

Related guides: SOUL.md for Hermes Agent: what it is and how to write one · Run multiple Hermes agents with profiles