Skip to main content

Preloop exposure and Agent Control plugin for Hermes

Project description

Preloop Hermes Plugin

preloop-hermes-plugin exposes Hermes to Preloop without requiring the Preloop CLI to be present at runtime.

The plugin reads the preloop.control block from ~/.hermes/config.yaml, connects Hermes to Preloop over the Agent Control WebSocket, advertises runtime capabilities, routes operator prompts or voice transcripts into Hermes, and gates native tool calls through Preloop mobile/watch approvals via the pre_tool_call hook (fail-closed by default).

Set preloop.control.tool_approval.enabled: false to disable the gate, or preloop.control.tool_approval.fail_open: true / PRELOOP_TOOL_APPROVAL_FAIL_OPEN=1 to allow tools when Preloop is unreachable.

Install

pip install preloop-hermes-plugin

If your Hermes build wraps PyPI installs:

hermes plugins install preloop-hermes-plugin

For local development from this repository:

cd preloop/runtime-plugins/hermes-preloop
python -m pip install -e .

Configure

The plugin does not require the Preloop CLI at runtime. Existing Preloop users can still let the CLI provision preloop.control:

preloop agents onboard hermes
preloop agents install-plugin hermes
preloop agents validate hermes

Restart Hermes after installation. When this plugin connects and advertises capabilities, Preloop marks Agent Control verified and Talk appears for the agent in web and mobile clients.

When installed from the Hermes marketplace or UI, the plugin should prompt for Preloop login or signup if that config block is missing. The standalone helper uses Preloop's browser OAuth flow to create a runtime bearer token and writes the config automatically; users should not hand-author bearer_token values.

The generated ~/.hermes/config.yaml contains:

preloop:
  control:
    enabled: true
    protocol: preloop.agent_control.v1
    runtime: hermes
    control_ws_url: wss://staging.preloop.ai/api/v1/agents/control/ws
    bearer_token: agt_...
    runtime_principal_id: hermes-...
    runtime_principal_name: Hermes

Manual Test Without Preloop CLI

pip install preloop-hermes-plugin
preloop-hermes-plugin login --config ~/.hermes/config.yaml
preloop-hermes-plugin verify --config ~/.hermes/config.yaml
preloop-hermes-plugin run --config ~/.hermes/config.yaml

login should open Preloop login/signup and write the runtime control config. verify checks the config shape and confirms the plugin can load the Preloop runtime client. run opens the Agent Control WebSocket and advertises capabilities. In Preloop, the agent should become control_online=true and the web/mobile clients should show Talk.

To test a prompt manually, open the Preloop web UI, choose the Hermes agent, click Talk, and send a short message. The plugin should forward the message to Hermes and send a command result back to Preloop.

Verify

preloop-hermes-plugin verify --config ~/.hermes/config.yaml

Publishing status

The package is published to PyPI as preloop-hermes-plugin. Before publishing, run:

python -m build
python -m twine check dist/*

See ../PUBLISHING.md for the full PyPI release checklist. Hermes discovers plugins via the hermes_agent.plugins entry point after install.

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

preloop_hermes_plugin-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

preloop_hermes_plugin-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file preloop_hermes_plugin-0.1.0.tar.gz.

File metadata

  • Download URL: preloop_hermes_plugin-0.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for preloop_hermes_plugin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 addbe4f2266a2a90248595dc18eddc77a22734bbaf1fe686f275f67db0e8d7de
MD5 108614107a9c041f8dbe87dfb6632a71
BLAKE2b-256 9c0958921ee79f9865486710dc1047392c5cc181664c93d3ebe9b9080ef25317

See more details on using hashes here.

File details

Details for the file preloop_hermes_plugin-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for preloop_hermes_plugin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12bd1f8dd01c6f2e226e0a91b19f0be76d90167f613b2279304aa085f8faa749
MD5 c29767a1c4a38ce42df27f56a622a7ab
BLAKE2b-256 1ff86c927f81f96a720a463be38091edd5539093d850ecfc67fb32fc33792d85

See more details on using hashes here.

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