Built on the
maximem-vity-sdk Python client. The plugin and its dependencies install into Hermes’ own Python environment.Features
- Long-term memory: Stores facts, preferences, episodes, knowledge, and user profiles in a private cloud-vault. Recalls them semantically across sessions.
- Auto-recall: Fetches relevant memories in the background and injects them as context before each turn.
- Auto-capture: Saves the user/assistant exchange to long-term memory after each turn.
- Memory mirroring: When Hermes’ built-in memory tool records a fact, it is also stored in Vity so it participates in semantic recall.
- Non-blocking: All network calls run on background threads, so the agent loop never blocks.
- Agent tools:
vity_recall,vity_profile,vity_store,vity_forgetfor agent-driven memory operations. - CLI commands: Terminal memory management with
hermes vity.
API key
You’ll need a Maximem API key to use this plugin.- Sign up or log in at app.maximem.ai.
- Open API Keys in the sidebar.
- Click Generate New Key.
- Copy your key (starts with
mx_...).
Installation
hermes-maximem-vity install does everything in one step:
- Copies the plugin into
~/.hermes/plugins/vity/, where Hermes discovers it. - Prompts for your API key and saves it to
~/.hermes/.env(no duplicates). - Activates the provider (
memory.provider: vity).
✅ All set! when finished. Start the agent with hermes.
Non-interactive installs
Pass the key as a flag to skip the prompt — useful for scripted or CI setups:Hitting a PEP-668 "externally-managed-environment" or "pip: command not found" error?
Hitting a PEP-668 "externally-managed-environment" or "pip: command not found" error?
System Python (e.g. Homebrew) blocks global You don’t need to match Python versions — the
pip install. Use pipx (recommended) or a virtual environment:maximem-vity-sdk dependency is installed into Hermes’ own environment automatically.Verify installation
Update or remove
Configuration
API key (required)
The API key is a secret and is stored in~/.hermes/.env.
| Env var | Required | Description |
|---|---|---|
MAXIMEM_API_KEY | Yes | Your Maximem API key (mx_...). VITY_API_KEY is also accepted. |
Tunables (optional)
Non-secret options live in$HERMES_HOME/vity.json, which is created on install.
| Key | Type | Default | Description |
|---|---|---|---|
auto_recall | boolean | true | Inject relevant memories before each turn. Recommended: keep enabled. |
auto_capture | boolean | true | Capture the conversation after each turn. Recommended: keep enabled. |
max_recall_tokens | number | 1000 | Token budget for recalled context. Higher = more context, more API usage. |
min_prompt_length | number | 5 | Skip recall for very short prompts. Prevents recall on messages like “hi”. |
Self-hosted backend (optional)
To point the plugin at a non-default Maximem API URL, setMAXIMEM_ENDPOINT (or endpoint in vity.json).
How it works
Once installed and configured, the plugin works automatically:- Recall before each turn — relevant memories are fetched in the background and injected as context, so the agent starts each turn already aware of the user.
- Capture after each turn — the user/assistant exchange is saved to long-term memory.
- Memory mirroring — when Hermes’ built-in memory tool records a fact, it is also stored in Vity so it participates in semantic recall.
Agent tools
The plugin exposes four tools to the agent:| Tool | Parameters | Purpose |
|---|---|---|
vity_recall | query (required), top_k (default 10, max 50) | Semantic search of stored memories. |
vity_profile | — | Retrieve the user’s full stored memory profile. |
vity_store | content (required), memory_type (fact / preference / emotion / episode / knowledge / profile) | Save a new memory. |
vity_forget | query, dry_run (default true) | Delete matching memories (previews first). |
vity_store; ask “what do you know about…” and it calls vity_recall. No special commands are required.
Example interaction:
CLI commands
Manage memory directly from your terminal.Troubleshooting
”API key not found” error
Ensure your API key is set correctly:Memories not being recalled
-
Check config: ensure
auto_recallistruein$HERMES_HOME/vity.json. -
Check prompt length: prompts shorter than
min_prompt_length(default: 5) won’t trigger recall. -
Verify the provider is active:
Confirm
vityshows as active. If not, runhermes config set memory.provider vity.
Provider unset after setup
The interactivehermes memory setup wizard can drop pasted input. Set the provider directly instead:
Support
- Documentation: docs.maximem.ai/vity
- API keys: app.maximem.ai/api-keys
- Email: [email protected]
- Twitter / X: @MaximemAI