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.1.tar.gz (11.3 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.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for preloop_hermes_plugin-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f50b1f7fd98091f6dab1f2fb1ed46505d393905b03007cc8dbf67e7179e775b4
MD5 a33d61bd5047db4feaef67b48b15bebd
BLAKE2b-256 78f7c73c17d3c19ab2493b755ce4bd794fde147dc73f77ee8348cd6ba3c44607

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for preloop_hermes_plugin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 49f72b51dd7653fd1791f69b82b71d285419a26a2dd935fe748a3e4a39cef3c9
MD5 7ed4bb825b5c77f4c280e4e2179f34ff
BLAKE2b-256 60f116b2a5503df7fc98ea12a6fac67b2f66c844ab4c8ec71825a40e7e178aa7

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