Hermes (Python)
The Hermes adapter (plur-hermes) plugs PLUR into Hermes Agent (and any framework using Hermes’ plugin system). It’s the standard path for Python-based agents.
Install
Section titled “Install”pip install plur-hermesnpm install -g @plur-ai/cli@0.9.4The plugin is auto-discovered by Hermes on startup. No registration call, no config import — just pip install.
The Hermes adapter shells out to the PLUR CLI for the actual engine. Current verified pairing: plur-hermes==0.9.4 with @plur-ai/cli@0.9.4. Mismatched versions can cause occasional tool-name drift; pin both.
What runs
Section titled “What runs”Three Hermes lifecycle hooks pick up automatically:
| Hermes hook | PLUR action |
|---|---|
pre_llm_call | Inject relevant memories into the upcoming LLM call. |
post_llm_call | Extract corrections, preferences, and insights from the response; stage as engrams. |
on_session_end | Write the episode timeline, promote stable candidates to active. |
Plus 16 explicit tools the agent can call via Hermes’ tool system:
plur_learn plur_recall plur_injectplur_list plur_forget plur_feedbackplur_capture plur_timeline plur_statusplur_sync plur_packs_list plur_packs_installplur_extract_meta plur_meta_engrams plur_meta_submit_analysisplur_validate_metaConfiguration
Section titled “Configuration”In your Hermes config (hermes.yaml or wherever your framework loads it):
plugins: plur: enabled: true cli_command: plur # path to @plur-ai/cli binary store: ~/.plur/ inject: max_engrams: 10 pre_call_only: true # don't re-inject mid-conversation capture: from_response: true # post_llm_call extracts learnings from_user: true # also scan user turnsVersioning and stability
Section titled “Versioning and stability”Hermes’ plugin system is still evolving. plur-hermes releases track Hermes plugin-API versions:
plur-hermes | Hermes |
|---|---|
| 0.9.x | plugin-api 2 |
| 0.8.x | plugin-api 1 |
If your Hermes is older, pin plur-hermes==0.8.x. If you’re on Hermes’ main branch, expect interface churn — open an issue at plur-ai/plur.
Pure-Python alternative
Section titled “Pure-Python alternative”If your Python agent doesn’t run on Hermes, you still have options:
- Shell out to the CLI —
subprocess.run(['plur', 'inject', task]). Works everywhere, has overhead. - Call the MCP server over stdio — use any Python MCP client to talk to
@plur-ai/mcp. Lower overhead than CLI, more setup. - Talk to a PLUR Enterprise REST API —
requests.post('https://plur.your-org.com/api/v1/engrams', ...). Best for multi-user.
A first-class Python SDK (@plur-ai/python) is on the roadmap; until it ships, the CLI + Hermes paths are recommended.
Next: CLI →