zeromem
ptaranat/zeromem
Zero-token Rust agent memory with a Hermes Agent memory provider plugin
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-*.whlRequirements: 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 memoryPlugin that turns AI conversations into a linked Zettelkasten knowledge base with MCP tools
okjpg Agent Context KitPrivate local-first context retrieval for Hermes agents through a read-only MCP server
MaiHHConnect CausaMemLong-term causal memory system for AI agents with eight cognitive layers and intuition injection
PCIRCLE-AI MeMeshLocal SQLite memory and messaging layer for coding agents, with a native Hermes Agent memory provider
rwnalds EngramSelf-hosted MCP server and dashboard for shared agent memory in a git-backed markdown vault
amrlazw Hermes Fleet MemoryShared vector memory for Hermes agent fleets with on-demand MCP retrieval and work/personal firewalls
Related guides: SOUL.md for Hermes Agent: what it is and how to write one · Run multiple Hermes agents with profiles