Skip to content

Quickstart

Four commands.
One guided setup.

Setup writes the Hermes plugin configuration and a derived Mordred policy, then prepares the route, platform helper, and keyvault steps your machine supports. It is resumable, defaults to lenient policy and clearnet, and sends the maintainers no usage telemetry.

Starting without Hermes?

Copy one guarded prompt to install Hermes, choose a model, connect Telegram, Slack, or Discord, and set up Mordred in one guided session.

Set up with AI

Step 01 — Install

The published installer targets Hermes's managed Python, checks compatibility, selects the macOS or Linux dependency set, and installs the canonical hermes-mordred package and launcher.

curl -fsSL https://raw.githubusercontent.com/mordredagent/hermes-mordred/main/scripts/install.sh | bash
Manual install into the Hermes environment

Use these only when you need manual package control. Both commands target Hermes's managed Python instead of whichever Python happens to be active in your shell.

macOS

uv pip install --python ~/.hermes/hermes-agent/venv/bin/python3 \ --upgrade-package hermes-mordred "hermes-mordred[macos]"

Linux

uv pip install --python ~/.hermes/hermes-agent/venv/bin/python3 \ --upgrade-package hermes-mordred "hermes-mordred[keyvault]"
Read the complete installer notes →

Step 02 — Setup

The re-runnable orchestrator checks Hermes, writes config.yaml and mordred/policy.json, offers a network route, prepares the platform helper, initializes keyvault, and enables supported macOS protection steps. Completed work is skipped; a blocked or corrupt keyvault is never reset automatically.

hermes-mordred setup

Step 03 — Inspect

This non-prompting, read-only dashboard reports policy, configured and live network state, keyvault and audit-encryption detail, and each at-rest target. It always exits 0, so inspect the reported state instead of treating the exit code as a health check.

hermes-mordred status

neutral: policy mode lenient · warns and audits; continues
neutral: network clearnet · configured; runtime not active in this process
ok: keyvault initialised · audit log encrypted · hardware helper installed
ok: env [on] protected at rest on macOS
neutral: config [off] not enrolled
neutral: workspace [off] not enrolled

read-only state snapshot · always exits 0

Step 04 — Run

Launch Hermes normally. Registered Mordred hooks apply the configured policy at their integration points. The default policy is lenient and the default route is clearnet; select strict and a protected route explicitly when those are required.

hermes

What just happened on your machine.

Two configuration files were written

~/.hermes/config.yaml remains the editable source. ~/.hermes/mordred/policy.json is the derived cross-plugin snapshot used by the enforcement hooks.

A platform-backed keyvault was prepared

macOS prefers Secure Enclave and may use a login-Keychain software key. Linux requires the TPM helper. Recovery requires the seed ceremony or an explicitly exported, passphrase-protected MRKV snapshot.

State stays local to this installation

Mordred sends its maintainers no usage telemetry. Audit starts as local mode-0600 NDJSON and becomes MRAL-encrypted only after its audit wrapping key is provisioned.

Remove without losing data

Decrypt every enrolled target first and verify that each status row is off. Then remove mordred_e2e, mordred_keyvault, mordred_llm_guard, mordred_network, mordred_privacy_check, mordred_wizard from plugins.enabled in ~/.hermes/config.yaml before uninstalling.

State under ~/.hermes/mordred and installed native helpers remain intentionally. Delete them only after confirming that no encrypted file or backup depends on those keys.

Decrypt and verify

hermes-mordred encryption disable all
hermes-mordred vault disable-config-decrypt
hermes-mordred encryption status

After editing plugins.enabled

uv pip uninstall --python ~/.hermes/hermes-agent/venv/bin/python3 \ mordred-hermes hermes-mordred
rm -f "$(dirname "$(command -v hermes)")/hermes-mordred"