The plugin and the
maximem-vity-sdk package it needs install into Hermes’ own Python environment.Features
- Long-term memory: Stores facts, preferences, episodes, knowledge, and user profiles in your Vity account, and recalls them across sessions. Vity is not end-to-end encrypted: Vity and the outside AI model providers it uses process your content. See Privacy and data.
- Auto-recall: Fetches relevant memories and injects them as context before each turn. It also loads a short summary of who you are once per session.
- 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 recall can find it.
- Never holds up a reply: Recall before a turn is capped at 3 seconds by default, and the turn goes ahead without memory if Vity is slow. Saving happens in the background.
- Agent tools:
vity_recall,vity_profile,vity_store,vity_forgetandvity_knowledgefor agent-driven memory operations. - CLI commands: Terminal memory management with
hermes maximem_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 API Key, enter a name, and click Generate Key.
- Copy your key (starts with
mx_...). Vity shows it only once.
Installation
hermes-maximem-vity install does everything in one step:
- Copies the plugin into
~/.hermes/plugins/maximem_vity/, where Hermes discovers it. - Prompts for your API key and saves it to
~/.hermes/.env(no duplicates). - Activates the provider (
memory.provider: maximem_vity).
✅ All set! when finished. Start the agent with hermes.
Already had Hermes (or the gateway) running during install? Restart it to load the newly-activated provider; gateway users run
hermes gateway restart.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
The installer always overwrites, so re-running it is how you upgrade:Remove
Configuration
API key (required)
The API key is a secret and is stored in~/.hermes/.env.
Every key on your Vity account reaches the same memory. To keep memories apart, use a separate Vity account.
Changing your key: a plain re-install keeps the existing key (you’ll see
already configured). To replace it, pass the new key explicitly; it’s written de-duplicated, so no stale copies are left behind:
~/.hermes/.env directly, then restart Hermes (gateway users: hermes gateway restart).
Tunables (optional)
Non-secret options live in a file namedvity.json in your Hermes home folder: ~/.hermes on macOS and Linux, %LOCALAPPDATA%\hermes on Windows, or wherever HERMES_HOME points. The installer does not create this file in your Hermes home folder, and the plugin works without it, using the defaults below. To change a setting, create the file yourself with only the keys you want to change.
Usage analytics
The plugin sends usage events to Maximem to help improve it, and they are on by default. They do not include your messages or memories. To turn them off, setMAXIMEM_ANALYTICS to 0, false, off or no in ~/.hermes/.env or your environment. The installer sends one event too, so set it before you run the installer if you want none at all.
How it works
Once installed and configured, the plugin works automatically:- Recall before each turn: Vity searches your memory for your current message. It is capped by
recall_deadline(default 3 seconds): if matches that score at leastrecall_min_scorereturn in time they are added as context; otherwise the turn goes ahead with no memory rather than waiting. The first time a session has a profile summary ready, Hermes adds that once as background context too (profile_warmup). - 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 recall can find it.
Recall is time-boxed, so a slow connection means no memory for that turn instead of a long wait. Saving runs in the background and never holds up the reply.
Agent tools
The plugin gives the agent five tools:
If Meeting Memory is switched on for your account, Hermes also offers
vity_meeting_recall, which answers questions from your meeting history. It takes question (required) and optional meeting_type and status filters. Without Meeting Memory the tool is not shown.
In chat, this is transparent: ask the agent to “remember that…” and it calls vity_store; ask “what do you know about…” and it calls vity_recall or vity_knowledge. No special commands are required.
Example interaction:
CLI commands
Manage memory directly from your terminal.Troubleshooting
”API key not found” error
Confirm the key and connection:maximem-vity-sdk not installed even after pip install
Hermes runs inside its own isolated environment, which is usually not the Python that ran pip install (e.g. Anaconda or system Python). The SDK must live in Hermes’ environment, and hermes-maximem-vity install puts it there for you. Just re-run it:
Memories not being recalled
-
Check config: ensure
auto_recallis not set tofalseinvity.jsonin your Hermes home folder. -
Check prompt length: prompts shorter than
min_prompt_length(default: 5) won’t trigger recall, except the first message of a session and short follow-ups like “why?”. -
Check the score floor: automatic recall only adds memories that score at least
recall_min_score(default 0.3), and gives up afterrecall_deadline(default 3 seconds). A slow connection can mean no memory that turn. -
Verify the provider is active:
Confirm
maximem_vityshows as active. If not, runhermes config set memory.provider maximem_vity.
Provider unset after setup
The interactivehermes memory setup wizard can drop pasted input. Set the provider directly instead:
Windows: hermes-maximem-vity is “not recognized as a command”
pip install --user on Windows drops the console script in a Scripts folder that isn’t on PATH. Add it for the current PowerShell session, then run install:
& "$(python -m site --user-base)\Python313\Scripts\hermes-maximem-vity.exe" install. To make it permanent, add that Scripts folder to your user PATH in Environment Variables.
Support
- Documentation: Vity overview
- API keys: app.maximem.ai/api-keys
- Email: [email protected]
- Twitter / X: @MaximemAI