Skip to main content

hermes-irc-extras

A plugin for Hermes Agent that adds features and security options to the IRC gateway adapter.

The first feature implements an option to Accept Invalid or Self-Signed TLS Certificates (IRC_ALLOW_INVALID_SSL) for connections to private IRC bouncers (such as ZNC), InspIRCd, or ergo test networks.

The second adds opt-in passive channel logging (IRC_ENABLE_CHANNEL_LOGGING) so the agent can search channel scrollback without spending a turn on every message it sees.

Features & Configuration

  • Precedence-Aware: Environment variables (IRC_ALLOW_INVALID_SSL) override config.yaml (allow_invalid_ssl) parameters.
  • Defensive Boolean Parsing: Unquoted or quoted string values in configuration (e.g. "true", "yes", "1", "false", "0", "no") are defensively parsed.
  • Dynamic UI Integration: Automatic integration with Hermes WebUI and Desktop UI configuration cards.

Setup

Configure the option in your .env or config.yaml:

Environment Variables (.env)

IRC_ALLOW_INVALID_SSL=true

Configuration File (config.yaml)

gateway:
  platforms:
    irc:
      enabled: true
      server: "irc.mybouncer.internal"
      port: 6697
      use_tls: true
      allow_invalid_ssl: true

Passive Channel Logging (opt-in, default OFF)

Lets the agent monitor channels and query scrollback without spending LLM turns on messages nobody addressed to it. Every PRIVMSG is written to a local SQLite database before the adapter's own addressing/authorization gates run; those gates are unchanged, so unaddressed traffic and traffic from users outside IRC_ALLOWED_USERS is recorded and then dropped — zero agent turns, zero API cost, no reply to the channel.

When enabled, two read-only tools are registered for the agent:

  • search_irc_logs(query, channel?, nick?, hours?, limit?) — FTS5 keyword/phrase search.
  • get_channel_history(channel, nick?, hours?, limit?) — recent chronological scrollback.
IRC_ENABLE_CHANNEL_LOGGING=true          # default: false
IRC_CHANNEL_LOG_DB_PATH=                 # default: {profile}/state/irc_channel_logs.db
IRC_CHANNEL_LOG_RETENTION_DAYS=14        # 0 keeps everything; pruning is automatic
gateway:
  platforms:
    irc:
      extra:
        enable_channel_logging: true
        channel_log_db_path: null
        channel_log_retention_days: 14

⚠️ This records other people's conversations. Enabling it logs every message in the channels the bot sits in, including from users who cannot instruct the agent at all — and every direct message sent to the bot. Each row keeps the sender's nick and their user@host (their hostname or cloak) next to the message text, the channel and the timestamp; direct messages are filed under the sender's nick and are readable through the same two tools. Old rows are pruned on the retention schedule above, and a new database file is created with owner-only (0600) permissions — but any account that can read the profile directory can still read the log. Check local expectations, any network policy and any data-protection obligation before turning it on. Nothing is written while the flag is off — the database is not even created.

⚠️ Log contents are untrusted input. Tool results are framed in the host's <untrusted_tool_result> data boundary (with the boundary token defanged inside the payload) so a passer-by in a logged channel cannot use the log as an indirect prompt-injection channel into the agent.

Installation

# Clone the repository
git clone https://github.com/b3nw/hermes-irc-extras.git ~/.hermes/plugins/hermes-irc-extras

# Install in editable mode
pip install -e ~/.hermes/plugins/hermes-irc-extras

Running Tests

pip install -e ".[dev]"
pytest tests/test_irc_extras.py

Security Warning

⚠️ Disabling TLS verification leaves the connection vulnerable to Man-in-the-Middle (MITM) attacks. The traffic remains encrypted but is no longer authenticated. Enable this option only with servers and networks you control.

License

MIT License — see LICENSE.

Release files for hermes-irc-extras 0.2.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 hermes-irc-extras 0.2.0
File Size Uploaded
hermes_irc_extras-0.2.0.tar.gz 35.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hermes-irc-extras 0.2.0
File Interpreter ABI Platform
hermes_irc_extras-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 60.5 kB

Release files / hermes_irc_extras-0.2.0.tar.gz

Download URL hermes_irc_extras-0.2.0.tar.gz
Size 35.4 kB
Tags Source
SHA-256 checksum
How to use checksums
56b3cc14aa0d2fa183888c1bf1c65e8da206521efbe9ffbc097d39702813f4f4
BLAKE2b-256 checksum
How to use checksums
c4a7212ee9d4d5d4e9878a59a9d66dcc6c22b5530076ef42c5491c0067b77847
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 / hermes_irc_extras-0.2.0-py3-none-any.whl

Download URL hermes_irc_extras-0.2.0-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f3856b06e7b46c24ab58d95dc8d8d38912026a1077cff8bf266409aa690b20ec
BLAKE2b-256 checksum
How to use checksums
f7362ba1dd01fa3b73ef84f4410f16bd5ef218bef3f3660cb807a3984d9c2eb6
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

This release

0.2.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