- Python 3.8+
- Hermes Agent installed
- Zulip organization (self-hosted or zulipchat.com)
- Admin access to create bots in your Zulip organization
- Log in to Zulip as an admin
- Go to Settings → Bots in the left sidebar
- Click Add a new bot
- Choose Generic bot
- Copy the API key and note the bot's email address
mkdir -p ~/.hermes/plugins/zulip
cp zulip/__init__.py zulip/adapter.py zulip/plugin.yaml ~/.hermes/plugins/zulip/
hermes plugins enable zulipHERMES_PATH=$(python3 -c "import hermes_cli; print(hermes_cli.__path__[0])")
mkdir -p "$HERMES_PATH/../plugins/platforms/zulip"
cp zulip/__init__.py zulip/adapter.py zulip/plugin.yaml "$HERMES_PATH/../plugins/platforms/zulip/"Run the setup wizard. No manual .env editing required — it reads the plugin's requires_env/optional_env declarations and prompts interactively:
hermes gateway setupFollow the prompts for:
- Zulip API key (password-masked)
- Bot email
- Site URL
- Allowed users (optional)
- Home channel & topic (optional)
The wizard saves everything to ~/.hermes/.env and offers to start the gateway.
hermes configBy default, the bot only sees DMs and @-mentions. To receive all messages in a stream:
- Go to Stream settings → Subscribers
- Add your bot
If the wizard didn't already start it:
hermes gateway| Problem | Fix |
|---|---|
| Bot not responding | Check ZULIP_ALLOWED_USERS includes your email; verify bot is subscribed to the stream |
| Connection errors | Verify API key, email, and site URL (no trailing slash) |
| "zulip package not installed" | Run pip install zulip |