Skip to content

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.

Terminal window
pip install plur-hermes
npm install -g @plur-ai/cli@0.9.4

The 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.

Three Hermes lifecycle hooks pick up automatically:

Hermes hookPLUR action
pre_llm_callInject relevant memories into the upcoming LLM call.
post_llm_callExtract corrections, preferences, and insights from the response; stage as engrams.
on_session_endWrite 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_inject
plur_list plur_forget plur_feedback
plur_capture plur_timeline plur_status
plur_sync plur_packs_list plur_packs_install
plur_extract_meta plur_meta_engrams plur_meta_submit_analysis
plur_validate_meta

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 turns

Hermes’ plugin system is still evolving. plur-hermes releases track Hermes plugin-API versions:

plur-hermesHermes
0.9.xplugin-api 2
0.8.xplugin-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.

If your Python agent doesn’t run on Hermes, you still have options:

  1. Shell out to the CLIsubprocess.run(['plur', 'inject', task]). Works everywhere, has overhead.
  2. Call the MCP server over stdio — use any Python MCP client to talk to @plur-ai/mcp. Lower overhead than CLI, more setup.
  3. Talk to a PLUR Enterprise REST APIrequests.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 →