Hermes Agent memory provider plugin backed by Cashew thought-graph memory.
Project description
hermes-cashew
A Hermes Agent memory provider plugin that stores conversation context in a local Cashew thought graph. Get from zero to a working install in under five minutes.
Prerequisites
- Python 3.10 or later
- Hermes Agent installed
- pip
Install
pip install hermes-cashew
Register with Hermes
After installing, register the plugin so Hermes discovers it:
hermes memory setup
When prompted to choose a memory provider, select cashew. This writes a
cashew.json config file to your hermes_home directory (default:
~/.hermes/cashew.json).
Verify the Install
Run the built-in smoke test to confirm everything is wired correctly:
python -m plugins.memory.cashew.verify
Expected output: a short report ending with OK. Exit code 0 means success.
Non-zero exit code (or output containing [cashew] prefixed error lines) indicates
a problem — see Troubleshooting below.
How It Works
hermes-cashew provides two LLM-accessible tools:
cashew_query— searches the local thought graph for context relevant to the current conversation. The agent calls this automatically duringprefetch().cashew_extract— explicitly persists a conversation turn into the graph. The agent can call this when it judges a turn contains worth记住了 knowledge.
Both tools are registered automatically when Hermes loads the plugin after
hermes memory setup selects cashew.
Configuration
After first run, edit ~/.hermes/cashew.json (or your configured hermes_home):
{
"cashew_db_path": "cashew/brain.db",
"embedding_model": "sentence-transformers/all-MiniLM-L6-v2",
"recall_k": 5,
"sync_queue_timeout": 30
}
| Key | Default | Description |
|---|---|---|
cashew_db_path |
cashew/brain.db |
Path to the SQLite DB, relative to hermes_home |
embedding_model |
sentence-transformers/all-MiniLM-L6-v2 |
Embedding model for retrieval |
recall_k |
5 |
Maximum nodes returned per recall query |
sync_queue_timeout |
30 |
Seconds to wait for the sync worker to drain on shutdown |
Uninstall
pip uninstall hermes-cashew
hermes memory setup # re-run to unregister, or just forget the cashew choice
rm -rf ~/.hermes/cashew # optional: remove the local graph data
Troubleshooting
python: module plugins.memory.cashew.verify not found
Run from the repository root, or ensure pip install -e . was used during development.
The verify module is only available when the package is installed or the repo root
is on PYTHONPATH.
Embedding model download attempts during install
hermes-cashew uses cashew-brain which bundles embeddings. The first retrieval
operation may trigger a ~500 MB embedding model download. To avoid this in
automated environments, set HF_HUB_OFFLINE=1 and use the provided fake-embedder
fixture in tests (see tests/conftest.py).
Hermes does not discover the plugin
Ensure hermes memory setup is run after pip install hermes-cashew.
The entry point is registered during pip install; Hermes scans it on setup.
For more on how Hermes discovers memory providers, see the Hermes memory-provider plugin developer guide.
Development
pip install -e ".[dev]" # install with test dependencies
pytest # run the test suite
Tests require no network access and mock the embedding model automatically
(HF_HUB_OFFLINE=1 is set by tests/conftest.py).
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
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 hermes_cashew-0.1.0.tar.gz.
File metadata
- Download URL: hermes_cashew-0.1.0.tar.gz
- Upload date:
- Size: 50.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfc8b3466ec8631fc7ad120b7fb42933cae0f38f9bc6dd2dda874b6500730eef
|
|
| MD5 |
ef350498c6997699f337a8ba8de3abe4
|
|
| BLAKE2b-256 |
c6277204c668b0b74a0067265aa70d563a80c51a7898763bdb1f644330bf4536
|
Provenance
The following attestation bundles were made for hermes_cashew-0.1.0.tar.gz:
Publisher:
release.yml on magnus919/hermes-cashew
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_cashew-0.1.0.tar.gz -
Subject digest:
cfc8b3466ec8631fc7ad120b7fb42933cae0f38f9bc6dd2dda874b6500730eef - Sigstore transparency entry: 1346226147
- Sigstore integration time:
-
Permalink:
magnus919/hermes-cashew@77647f0761163dd7c197420837e8ddb072c81a58 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/magnus919
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@77647f0761163dd7c197420837e8ddb072c81a58 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hermes_cashew-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hermes_cashew-0.1.0-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ae622a3991d941472aaa3ec63063b651276ac1d402cbb210bd57ea23aba5304
|
|
| MD5 |
f6a5f76e9fe2ff69320dd34992e97eb5
|
|
| BLAKE2b-256 |
41d391a9e326d347755c26f75b9b6afc2a2a91e6680ba59075e775a906742b1b
|
Provenance
The following attestation bundles were made for hermes_cashew-0.1.0-py3-none-any.whl:
Publisher:
release.yml on magnus919/hermes-cashew
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_cashew-0.1.0-py3-none-any.whl -
Subject digest:
9ae622a3991d941472aaa3ec63063b651276ac1d402cbb210bd57ea23aba5304 - Sigstore transparency entry: 1346226282
- Sigstore integration time:
-
Permalink:
magnus919/hermes-cashew@77647f0761163dd7c197420837e8ddb072c81a58 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/magnus919
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@77647f0761163dd7c197420837e8ddb072c81a58 -
Trigger Event:
push
-
Statement type: