Skip to main content

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 logging
  • mordred_wizardhermes mordred … CLI surface
  • mordred_llm_guard — strict-mode local LLM enforcement
  • mordred_network — Tor / VPN / Clearnet path management
  • mordred_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 (development)

# From this repo's root
uv pip install --python ~/.hermes/hermes-agent/venv/bin/python3 -e .

Verify discovery (Hermes 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']

Note: hermes plugins list does not display entry-point plugins in Hermes 0.11.0 — it only scans <repo>/plugins/ and ~/.hermes/plugins/ directories. The loader (PluginManager.discover_and_load) does discover them and call register(). Phase 1.3 will ship hermes mordred plugins list as a wrapper that surfaces entry-point plugins in the CLI.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mordred_hermes-0.1.0a0.tar.gz (772.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mordred_hermes-0.1.0a0-py3-none-any.whl (506.0 kB view details)

Uploaded Python 3

File details

Details for the file mordred_hermes-0.1.0a0.tar.gz.

File metadata

  • Download URL: mordred_hermes-0.1.0a0.tar.gz
  • Upload date:
  • Size: 772.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mordred_hermes-0.1.0a0.tar.gz
Algorithm Hash digest
SHA256 2ef7f426f64c12960aadb3f5b0a7841a9b7e3df222c2a5d7ad9391a3f4811f4c
MD5 a4dcc68563b1a473ea0198fd442a29c3
BLAKE2b-256 0a3d1db904f991dd3695cb68e303770b67bc491aeb966d1ec5e368cf779eb15b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mordred_hermes-0.1.0a0.tar.gz:

Publisher: release.yml on InternetMaximalism/mordred-hermes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mordred_hermes-0.1.0a0-py3-none-any.whl.

File metadata

File hashes

Hashes for mordred_hermes-0.1.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc2f4f3bb9b1300529911c4b31ac7de8e307fff91cc34fc162055e6676c96c04
MD5 3cc597bdd0e883d2b451b0b42d873e25
BLAKE2b-256 048603659d3b49d9759cdc8319db4e4be1524b61da26e0ef6d41cb0ca989a6db

See more details on using hashes here.

Provenance

The following attestation bundles were made for mordred_hermes-0.1.0a0-py3-none-any.whl:

Publisher: release.yml on InternetMaximalism/mordred-hermes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page