Privacy-preserving plugin bundle for the Hermes agent (NousResearch/hermes-agent)
Project description
mordred-hermes
Privacy-preserving plugin bundle for the Hermes agent.
Five plugins exposed via the hermes_agent.plugins entry-point group:
mordred_privacy_check— skill metadata enforcement, audit loggingmordred_wizard—hermes mordred …CLI surfacemordred_llm_guard— strict-mode local LLM enforcementmordred_network— Tor / VPN / Clearnet path managementmordred_keyvault— Secure Enclave-backed key management (macOS, optional)
Status
Active alpha (0.1.0a0). The five entry-point plugins are implemented beyond
the original Phase 0 scaffold; the default unit suite is intended to stay
hermetic, while hardware- and network-mutating checks remain opt-in.
See docs/dev/ for SPEC, PLAN, TODO, PATHS, MIGRATION, UPSTREAM, CI, and docs/user/ for QUICKSTART and USAGE.
Validation
Default local checks:
UV_CACHE_DIR=/tmp/uv-cache uv run ruff check src tests
HERMES_HOME=/private/tmp/hermes-mordred-test-home UV_CACHE_DIR=/tmp/uv-cache uv run pytest -q
Manual live-device validation was reported successful on 2026-05-25 for the hardware/network-gated suites that are excluded from default PR CI:
MORDRED_KEYVAULT_LIVE=1 pytest -m integration tests/integration/test_keyvault_macos.py -v
MORDRED_LIVE_VPN_TEST=1 MORDRED_MULLVAD_ACCOUNT=... pytest -m integration tests/integration/test_vpn.py -v
The Tor path is covered separately by the hermetic Docker-based
integration-tor CI job.
Install (PyPI)
Published on PyPI since 0.1.0a0
(2026-07-08). Install into the same environment as hermes-agent so the
entry-point plugins are visible to its loader:
~/.hermes/hermes-agent/venv/bin/pip install mordred-hermes==0.1.0a0
Pin the version explicitly (or pass --pre): every release is currently a
pre-release, so an unpinned pip install mordred-hermes resolves the latest
alpha only via pip's all-prereleases fallback.
Platform extras are opt-in, e.g. mordred-hermes[macos] for the Secure
Enclave keyvault on Apple Silicon. Then enable the plugins in
~/.hermes/config.yaml as shown below.
Install (development)
# From this repo's root
uv pip install --python ~/.hermes/hermes-agent/venv/bin/python3 -e .
Verify discovery:
~/.hermes/hermes-agent/venv/bin/hermes plugins list # Hermes ≥0.18: shows the five mordred_* rows with source `entrypoint`
or, on any supported Hermes version (≥0.11.0):
~/.hermes/hermes-agent/venv/bin/python3 -c "
from hermes_cli.plugins import PluginManager
mgr = PluginManager(); mgr.discover_and_load(force=True)
print(sorted(k for k, p in mgr._plugins.items() if p.manifest.source == 'entrypoint'))
"
# → ['mordred_keyvault', 'mordred_llm_guard', 'mordred_network', 'mordred_privacy_check', 'mordred_wizard']
Version notes (verified against hermes-agent 0.18.2, 2026-07-08):
hermes plugins listdisplays entry-point plugins on 0.18.2. On Hermes 0.11.0 it did not (it only scanned<repo>/plugins/and~/.hermes/plugins/directories) — the Python snippet above is the fallback check for older versions.hermes mordred ...subcommands are still not wired into Hermes's argparse, even on 0.18.2. Use the standalonehermes-mordredconsole script (same subcommand tree) until upstream wires entry-point CLI commands.
To enable, edit ~/.hermes/config.yaml:
plugins:
enabled:
- mordred_privacy_check
- mordred_wizard
- mordred_llm_guard
- mordred_network
- mordred_keyvault
For Phase 4 (mordred_keyvault) on macOS Apple Silicon:
uv pip install --python ~/.hermes/hermes-agent/venv/bin/python3 -e ".[macos]"
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 mordred_hermes-0.1.0a1.tar.gz.
File metadata
- Download URL: mordred_hermes-0.1.0a1.tar.gz
- Upload date:
- Size: 773.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 |
2301b7fdd6a7156b56aaddb626fc51f8106e9f4f7781cbc5506955f12d8e4737
|
|
| MD5 |
ca1cc2db243253e50d1994083e69ee35
|
|
| BLAKE2b-256 |
2b918129b3dc4773dc1b748603269fc009e294fc55fec16f7d62e2bf72aef92b
|
Provenance
The following attestation bundles were made for mordred_hermes-0.1.0a1.tar.gz:
Publisher:
release.yml on InternetMaximalism/mordred-hermes
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mordred_hermes-0.1.0a1.tar.gz -
Subject digest:
2301b7fdd6a7156b56aaddb626fc51f8106e9f4f7781cbc5506955f12d8e4737 - Sigstore transparency entry: 2119844166
- Sigstore integration time:
-
Permalink:
InternetMaximalism/mordred-hermes@8a3b25ba8d8618d8488b14334a074d6318d914e2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/InternetMaximalism
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8a3b25ba8d8618d8488b14334a074d6318d914e2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file mordred_hermes-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: mordred_hermes-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 506.8 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 |
64969f83fc5072a79eb7f9e8a4fa39481354289b60dd59ca306c0dce5e529e98
|
|
| MD5 |
2262de11bf392534fc752cc48ed42642
|
|
| BLAKE2b-256 |
331e6b00814c22d18f713713e998322b112e6a28d79f5f36caebaf55a006b8be
|
Provenance
The following attestation bundles were made for mordred_hermes-0.1.0a1-py3-none-any.whl:
Publisher:
release.yml on InternetMaximalism/mordred-hermes
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mordred_hermes-0.1.0a1-py3-none-any.whl -
Subject digest:
64969f83fc5072a79eb7f9e8a4fa39481354289b60dd59ca306c0dce5e529e98 - Sigstore transparency entry: 2119844267
- Sigstore integration time:
-
Permalink:
InternetMaximalism/mordred-hermes@8a3b25ba8d8618d8488b14334a074d6318d914e2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/InternetMaximalism
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8a3b25ba8d8618d8488b14334a074d6318d914e2 -
Trigger Event:
workflow_dispatch
-
Statement type: