> memra × hermes agent
give hermes agent a real memory.
memra is a native hermes agent memory provider. one command installs it. hermes then recalls relevant memories before each turn, persists what it learns, and keeps important context even after the window compresses. eu-hosted, privacy-first.
recall before every turn
hermes prefetches the memories relevant to your message — hybrid semantic + structured search, importance-ranked — so answers are grounded in what it already knows about you and your projects.
survives compression
when hermes compresses its context window, memra persists the about-to-be-discarded turns to long-term memory first. nothing important is lost — it stays recallable.
typed, durable memory
facts, events, preferences and decisions stored with type + importance. eu servers, your data stays yours. self-host memra and point the provider at your own instance.
install the provider
one command drops the memra provider into ~/.hermes/plugins/memra/. requires hermes agent 0.11+ — check with hermes --version.
$ curl -fsSL https://raw.githubusercontent.com/usememra/hermes-memra/main/install.sh | bash
connect your memra account
run the interactive picker, select memra, and paste your api key + project id from your dashboard.
$ hermes memory setup # select "memra"
$ hermes config set memory.provider memra
$ echo "MEMRA_API_KEY=memra_live_xxx" >> ~/.hermes/.env
$ cat > ~/.hermes/memra.json <<'JSON'
{
"project_id": "proj_xxx",
"tenant_id": "hermes-user",
"capture_mode": "curated"
}
JSON
always pin tenant_id on a single-user install. it's the partition key for your memories — if cli, telegram and other platforms write to different tenants, they can't see each other's memory. the install script pins it for you; set it by hand here. self-hosting? add "base_url" to keep every memory on your own infrastructure, or "mode": "local" for a fully-local store with no api key.
verify
confirm memra is the active memory provider. then just talk to hermes — it recalls and remembers automatically.
$ hermes memory status
> tools hermes gains
| memra_search | hybrid semantic + structured recall by meaning. |
| memra_remember | store a durable fact, preference, or decision. |
| memra_profile | overview of everything hermes knows about you. |
control what gets captured
memory is only useful if it stays sharp. capture_mode in memra.json decides how much hermes writes to memra on its own. the default is curated — signal in, noise out.
| mode | what memra stores |
|---|---|
| curated (default) | explicit memra_remember facts, mirrored MEMORY.md/USER.md writes, pre-compress rescues, and one distilled digest per session. no per-turn firehose. |
| all | everything curated stores, plus every completed turn — maximum recall, more noise. |
| off | explicit memra_remember only. nothing is captured passively. |
override per shell with MEMRA_CAPTURE_MODE=all, or set a recall floor with MEMRA_PREFETCH_MIN_IMPORTANCE=6 so only high-value memories auto-inject before a turn.
> keep your store healthy
# check for tenant fragmentation across platforms
$ python ~/.hermes/plugins/memra/scripts/memra_doctor.py
# merge an orphaned tenant back into your main one
$ python ~/.hermes/plugins/memra/scripts/migrate_tenant.py --from-tenant <orphan> --to-tenant hermes-user
ready to give hermes a memory?
free tier. eu-hosted. privacy-first. no credit card required. grab an api key, create a project, and run the install command above.