-
Notifications
You must be signed in to change notification settings - Fork 0
Chat Commands
Control the bot at runtime from a private message or a channel (authorised users only; never triggered by history replay). There are two prefixes, by design:
-
.agent <command>drives the agent / gateway (model, memory, reasoning, ...). -
.ircx <command>configures this IRC adapter itself, live.
Both prefixes are configurable: IRCX_COMMAND_PREFIX (default .agent) and IRCX_ADMIN_PREFIX (default .ircx). IRC clients intercept a leading /, which is why non-slash prefixes are used.
.agent <command> bridges straight to Hermes' central slash-command registry, so anything the gateway exposes is available:
| Example | Effect |
|---|---|
.agent model <name> |
switch model on the fly |
.agent model <name> --provider <p> |
switch model and provider |
.agent reasoning high |
set reasoning effort |
.agent reset (alias of new) |
start a fresh session |
.agent whoami |
show identity / auth |
.agent status |
gateway status |
.agent help |
list every available command |
Replies are rewritten so any /command the gateway mentions is shown in .agent command form, matching how you actually invoke it on IRC (URLs and file paths are left alone).
.ircx reads and writes this adapter's own settings and persists them to ircx.env (below). It is multi-network aware: it acts on the network the message arrived on.
| Command | Effect |
|---|---|
.ircx list |
every non-secret setting and its current value |
.ircx get <key> |
one setting |
.ircx set <key> <value> |
change a setting (all non-secret options) |
.ircx restart |
restart the gateway (applies connection-level changes) |
.ircx help |
usage summary |
Keys are the IRCX_* option names without the prefix, lower-cased: e.g. observe_mode, blocked_channels, raw_guardrails, require_mention, spontaneous_probability, port, nickname, channel.
-
Hot keys apply instantly (behaviour options read per message):
observe_mode,spontaneous_probability,spontaneous_cooldown,require_mention,group_policy,blocked_channels,joinable_channels,allow_agent_join,allow_agent_kick,allow_raw,raw_guardrails,show_events,max_message_length,chathistory_limit,allowed_users,allow_all_users,commands_enabled,command_prefix,admin_prefix. -
Connection keys are saved but need
.ircx restart:server,port,use_tls,tls_verify,nickname,username,realname,channel,networks,sasl_mechanism,sasl_username,nickserv_service,log_dir,context_buffer,home_channel.
.ircx set tells you which kind it applied.
Connection passwords (sasl_password, nickserv_password, server_password) stay in the profile .env. .ircx get shows them as ***set*** / (unset), and .ircx set refuses them: the agent reads untrusted channel input, so credentials are kept out of its reach.
.ircx set observe_mode false # stop chiming in unprompted (instant)
.ircx set blocked_channels #foo,#bar # never-join denylist (instant)
.ircx set raw_guardrails medium # raw IRC policy (instant)
.ircx set nickname newnick # saved...
.ircx restart # ...applied
The plugin has many IRCX_* options. Rather than clutter your profile .env, point IRCX_CONFIG_FILE at a dedicated dotenv:
# in the profile .env
IRCX_CONFIG_FILE=/path/to/profile/ircx.envIt is loaded on top of the environment at startup, and .ircx set writes changes there. Keep only the secret *_PASSWORD vars and IRCX_CONFIG_FILE itself in .env; everything else can live in ircx.env.
Multi-network note: a second network foo (via IRCX_NETWORKS=foo) uses IRCX_FOO_* keys, and .ircx set on that network writes the correctly prefixed key automatically.
Both prefixes are on by default. Set IRCX_COMMANDS_ENABLED=false to turn them off. Only authorised users (per IRCX_ALLOWED_USERS / verified account) are obeyed; anyone else's attempt is silently ignored.