HarnessMemory for Hermes
Hermes MemoryProvider plugin backed by harness-memory.
For the full server-side OpenClaw + Hermes usage guide, see:
docs/harnessmemory-openclaw-hermes-usage.md
Install
From PyPI — pip install harness-memory-hermes pulls in harness-memory as a normal
dependency, so this one command is enough:
pip install harness-memory-hermes
harness-memory-hermes install \
--hermes-home ~/.hermes \
--hermes-source ~/.hermes/hermes-agent \
--force
harness-memory-hermes doctor \
--hermes-home ~/.hermes \
--hermes-source ~/.hermes/hermes-agent
From a monorepo source checkout, install this plugin package (editable) instead of PyPI:
python3 -m venv ~/.venv/harnessmemory
~/.venv/harnessmemory/bin/pip install -e ~/harness-memory/plugins/hermes
~/.venv/harnessmemory/bin/harness-memory-hermes install \
--hermes-home ~/.hermes \
--hermes-source ~/.hermes/hermes-agent \
--source-dir ~/harness-memory/plugins/hermes/harnessmemory \
--force
~/.venv/harnessmemory/bin/harness-memory-hermes doctor \
--hermes-home ~/.hermes \
--hermes-source ~/.hermes/hermes-agent
--source-dir only matters if you want to install from a specific checkout path rather than
wherever pip put this package; it defaults to this package's own installed location.
The installer copies this provider to:
< HERMES_SOURCE >/plugins/memory/harnessmemory/
and activates it by setting:
memory:
provider: harnessmemory
Manual install shape
If you do not use harness-memory-hermes install (e.g. Hermes' own native plugins install <git-url> flow), copy this directory into Hermes' memory plugin directory as:
< HERMES_SOURCE >/plugins/memory/harnessmemory/
Then activate:
hermes config set memory.provider harnessmemory
or edit ~/.hermes/config.yaml so memory.provider is harnessmemory.
Hermes' Python environment must also be able to import harness_memory. For source deployments, either install the project into Hermes' venv or add the source src/ directory through a .pth file.
Data path and config
By default the provider stores data under the active Hermes profile:
$HERMES_HOME/harnessmemory/memory.sqlite
$HERMES_HOME/harnessmemory.json
Do not hard-code ~/.hermes; Hermes profiles rely on hermes_home isolation.
Host Markdown indexing is separate from HarnessMemory's own SQLite store. By default the provider watches $HERMES_HOME/memories for Hermes built-in memory files:
MEMORY.mdUSER.md- allowlisted topical Markdown such as
topics/*.mdandprojects/*.md
It does not scan $HERMES_HOME/state.db, sessions/, logs/, or arbitrary **/*.md.
harnessmemory.json supports the fields exposed through hermes memory setup:
{
"profile": "balanced",
"namespace": "hermes__default",
"db_path": "$HERMES_HOME/harnessmemory/memory.sqlite",
"recall": {
"default_max_results": 5,
"default_corpus": "all",
"raw_policy": "fallback",
"layer_order": ["atom", "page", "raw"]
},
"capture": {
"include_roles": ["user", "assistant"],
"min_message_chars": 0,
"include_tool_calls": false,
"include_tool_results": false,
"skip_memory_echo": true,
"host_files_watcher": true
},
"host_files_root": "$HERMES_HOME/memories",
"host_files_allow": ["topics/*.md", "projects/*.md"],
"privacy": {
"redact_secrets": true,
"redact_patterns": [],
"store_raw_content": true,
"store_tool_payloads": false
}
}
capture and privacy apply to sync_turn(), on_memory_write(), and on_pre_compress() writes. recall applies to memory_search.
Exposed model tools
memory_searchmemory_get
Provider CLI
When memory.provider=harnessmemory, Hermes exposes:
hermes harnessmemory status
hermes harnessmemory search "query" -n 5 --corpus all
hermes harnessmemory show raw/2026-06-04/evt_xxx.md --lines 40
These commands use the same memory_search / memory_get contract exposed to the model.
Lifecycle
prefetch(query)recalls context before a model call.sync_turn(user, assistant)writes L0 raw events in a background thread.on_memory_write(action, target, content)mirrors built-inMEMORY.md/USER.mdwrites.on_pre_compress(messages)captures context before compression.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file harness_memory_hermes-0.3.0.tar.gz.
File metadata
- Download URL: harness_memory_hermes-0.3.0.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9347998d0fa52d03b1f59e20a654e032a80d2b9c44dc158fd684fa4cbf6b8ff7
|
|
| MD5 |
76d16eaa2e046c65a68f49f2a8745df5
|
|
| BLAKE2b-256 |
ae8507a40e846554e449d3dab7a5780f0f116076ffa46a9fae42dd4427118323
|
File details
Details for the file harness_memory_hermes-0.3.0-py3-none-any.whl.
File metadata
- Download URL: harness_memory_hermes-0.3.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff79cdbedb7e76c54b586ff0e59ba53465a92076b06cf109a54dd1e8e67e8975
|
|
| MD5 |
c24ccb961c32513367c4976d0277d1d9
|
|
| BLAKE2b-256 |
6c6def50bb4c9149dd65896d3de24c9ef0005a319296b6d928c759e18c840ec0
|