Skip to main content

ZenMux for Hermes Agent

An out-of-tree Hermes model-provider plugin that connects ZenMux using OAuth 2.0 Authorization Code with PKCE. Hermes owns the browser callback, credential pool, proactive refresh, and refresh-token serialization.

Requirements

  • A Hermes Agent build containing the declarative OAuth PKCE plugin API (NousResearch/hermes-agent main at or after 3e67877e1b).
  • A dedicated ZenMux public OAuth client for Hermes. Do not reuse a client registered for DSH, Codex, or another application.
  • Allowed scope: inference:invoke offline_access.
  • Allowed loopback redirect URI: http://127.0.0.1:* (Hermes chooses an ephemeral port).

Install from a checkout

PyPI

Install the package into the same Python environment as Hermes, then explicitly enable its entry point:

python3 -m pip install zenmux-hermes-plugin
hermes plugins enable zenmux

Restart an already-running Hermes process after installation.

Git checkout

HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
mkdir -p "$HERMES_HOME/plugins/model-providers"
git clone https://github.com/ZenMux/hermes-plugin.git \
  "$HERMES_HOME/plugins/model-providers/zenmux"
cd "$HERMES_HOME/plugins/model-providers/zenmux"

The repository already contains the dedicated Hermes public client ID. The configure.py command is only needed for development against another registered client:

python3 configure.py zpc_YOUR_DEVELOPMENT_CLIENT_ID

Restart an already-running Hermes process after installing or updating a checkout. Then authenticate and select a model:

hermes auth add zenmux
hermes auth status zenmux
hermes model

hermes auth refresh zenmux rotates the access and refresh tokens. hermes auth logout zenmux removes the ZenMux credential rows.

After a valid callback, the loopback page embeds ZenMux's client-aware completion page in a full-screen iframe. A callback with an invalid OAuth state never renders the success iframe.

The public client ID is stored in zenmux.json. OAuth access and refresh tokens are not stored by this plugin; Hermes keeps them in its credential pool.

Current transport

The first release uses ZenMux's OpenAI-compatible endpoint:

https://zenmux.ai/api/v1

The live model picker reads https://zenmux.ai/api/v1/models with the pooled OAuth access token. No static model list is embedded in the plugin.

Release files for zenmux-hermes-plugin 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zenmux-hermes-plugin 0.1.0
File Size Uploaded
zenmux_hermes_plugin-0.1.0.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zenmux-hermes-plugin 0.1.0
File Interpreter ABI Platform
zenmux_hermes_plugin-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / zenmux_hermes_plugin-0.1.0.tar.gz

Download URL zenmux_hermes_plugin-0.1.0.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
23a715f83a7e98aea4bf71514741ab1bb59ccb07d5b4e3e810c5933957a197b9
BLAKE2b-256 checksum
How to use checksums
db2a6524e8c74441d636131499625462c5a5cba21206e880458d7e479d66c0af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release files / zenmux_hermes_plugin-0.1.0-py3-none-any.whl

Download URL zenmux_hermes_plugin-0.1.0-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0868101c84c0e1639650e1e61a31ee2b212ffb66b409a6bf38e67e7d7a9de350
BLAKE2b-256 checksum
How to use checksums
100f3116aeddda781fa50d58e2919f9cb508741aad903b78137bc78c0ac2ba83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page