← Hermes Setup

๐Ÿ’ฌ Hermes + Discord โ€” Setup & Cron

Connect Discord to your Hermes Agent, then schedule a recurring "latest AI tricks and tips" digest to a channel.

Discord app Bot + intents Invite Configure Hermes Cron digest

I Part 1 โ€” Connect Discord to Hermes

Set up a Discord application and bot, invite it to your server, then point Hermes at it.

1 Create the Discord application

Go to the Discord Developer Portal → New Application → name it (e.g. "Hermes Agent") → Create.

Note the Application ID on the General Information page.

2 Create the bot

Left sidebar → Bot. Discord auto-creates a bot user.

Under Authorization Flow: set Public Bot to ON (needed for the easy invite link) and leave Require OAuth2 Code Grant OFF.

3 Enable Privileged Gateway Intents

โš ๏ธ This is the step almost everyone misses.

Still on the Bot page, scroll to Privileged Gateway Intents and turn ON:

Click Save Changes.

4 Get the bot token

Under Token, click Reset Token, confirm 2FA if enabled, and copy it immediately.

๐Ÿ”‘ The token is shown only once. Store it somewhere safe (a password manager).

5 Generate an invite URL

Easiest: Installation tab → enable Guild Install → Install Link = Discord Provided Link → under Default Install Settings pick:

Or build it manually:

https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot+applications.commands&permissions=274878286912

6 Invite it to your server

Open that URL, pick your server, Authorize, complete the CAPTCHA.

7 Get your Discord User ID

Discord Settings → Advanced → turn on Developer Mode → right-click your username → Copy User ID.

8 Configure Hermes

Easiest โ€” run:

hermes gateway setup

Pick Discord, paste the token and your user ID when prompted.

Or manually, add to ~/.hermes/.env:

DISCORD_BOT_TOKEN=your-bot-token
DISCORD_ALLOWED_USERS=284102345871466496

Then start it:

hermes gateway

Send the bot a DM to test โ€” in server channels it needs an @mention unless you set DISCORD_FREE_RESPONSE_CHANNELS.

9 Set a home channel (optional, useful for cron)

The channel where scheduled/cron output gets delivered. Type /sethome in the channel you want, or set manually:

DISCORD_HOME_CHANNEL=123456789012345678

II Part 2 โ€” Cron job: daily "AI tips" digest to Discord

Cron jobs run in an isolated session with no memory of past chats, so the prompt must be fully self-contained โ€” tell it exactly what to search, how to format it, and where to send it.

Create it in chat

/cron add "0 9 * * *" "Search the web for the most useful and recent AI tips, tricks, prompting techniques, and tool updates from the last 24 hours. Focus on practical, actionable things (prompt engineering tricks, new model features, workflow hacks) โ€” skip generic news and hype. Summarize the top 5 in a punchy Discord-friendly format, using bold headers and short bullet points. Keep the whole thing under 300 words." --name "daily-ai-tips" --deliver discord

Or via the CLI

hermes cron create "every day 9am" \
"Search the web for the most useful and recent AI tips, tricks, prompting techniques, and tool updates from the last 24 hours. Focus on practical, actionable things โ€” skip generic hype and news recaps. Summarize the top 5 in a Discord-friendly format with bold headers and short bullets. Keep it under 300 words." \
--name "daily-ai-tips" \
--deliver discord

Tuning it

OptionNotes
ScheduleSwap "0 9 * * *" for whatever you want โ€” "every 1d", "every monday 9am", standard cron syntax all work.
--deliver discordSends to your configured Discord home channel. Target a specific one with --deliver discord:#channel-name or a channel ID.
Verify & testhermes cron list to check it; hermes cron run <job-id> to force a test run before waiting for the schedule.
๐Ÿคซ To stay quiet on days with nothing new, add to the prompt: "If nothing genuinely new or useful is found, respond with only [SILENT]." โ€” that suppresses delivery entirely instead of sending a low-value message.