- Install Hermes Desktop and complete the onboarding wizard.
- Configure SOUL.md with a basic agent identity.
- Connect a model provider, DeepSeek is the cheapest way in.
- Pair Telegram by scanning a QR code, and optionally connect Discord.
Three Ways to Install
Config, keys, sessions, skills, and memory are shared across all three, so switching later isn't starting over.
A native chat app for macOS or Windows. Polished UI, no terminal needed. Today's starting point on those two.
Direct, non-Docker install on your own machine. Same core as the Desktop App, just a CLI instead of a UI. The path for Linux, no desktop build exists yet.
Runs as a Docker container on a remote server, online 24/7 independent of your machine. The path to always-on workflows, covered in Module 08.
Installing Hermes (Desktop App)
On macOS or Windows, download the native app from hermes-agent.nousresearch.com and install it like any other app. First launch drops you straight into the onboarding wizard, covering inference provider, messaging, and tools in one pass.
On Linux, or prefer the CLI anyway?
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | sh, then hermes setup. Same wizard, same result, just no window, and it writes into the identical ~/.hermes/ home folder.
First Run and SOUL.md
The setup wizard creates your ~/.hermes/ directory with a default SOUL.md.
Open ~/.hermes/SOUL.md (or hermes config edit). The default is generic, change it to something focused. A starting point for this course:
You are a financial research assistant focused on Indonesian equities. Before answering any question about a specific stock or sector, always retrieve live data from Sectors. Do not rely on training data for price, ratio, or earnings information. Format numbers in IDR where relevant. Keep responses concise unless the user asks for a full breakdown. Always cite which tool you used to retrieve data. Before executing any write operation (files, emails, calendar), confirm with the user first.
Connecting a Model Provider
During first run, the wizard asks for a provider. A few paths work for this course, pick whichever fits your budget.
Grab a key from platform.deepseek.com and paste it in during setup. Chosen here for cheap experimentation, tool calling works well and the cost stays low for a full day of poking around.
One OAuth login (hermes setup --portal) replaces separate OpenRouter, Anthropic, and OpenAI keys, 300+ models under one subscription. Comes with free credits, but activating the account requires a credit card on file.
Both offer a genuinely free tier, no card needed. Create a key at console.groq.com for Groq, or aistudio.google.com for Gemini.
OpenAI supports either OAuth login or an API key. Anthropic supports API key only, its OAuth login doesn't currently work with Hermes.
Connecting Telegram
Hermes talks to you through a messaging platform. From the Desktop App, Telegram is a QR scan away.
In the Desktop App, go to Capabilities → Messaging → Telegram.
The page shows a QR code. Open Telegram on your phone and scan it, following the prompts it gives you.
Config changes need a restart to apply. Use the app's restart control here, then confirm the "restart needed" badge clears before testing.
Setting this up from the terminal or a VPS instead?
@BotFather and your Telegram user ID from @userinfobot, then hermes gateway setup.
Connecting Discord (Optional)
A few more steps than Telegram, worth it for the gotchas below, each of which has caused a bot to go silently unresponsive.
In the Discord Developer Portal, create an application. Under Bot → Privileged Gateway Intents, enable Message Content Intent. Copy the bot token.
Generate an invite URL from the Installation tab (bot scope, plus Send Messages, Read Message History, and View Channels, easy to miss). Open the URL, add the bot.
Capabilities → Messaging → Discord in the Desktop App, paste the bot token, Save. Get your own user ID via Developer Mode, right-click your name, Copy User ID.
DISCORD_ALLOW_ALL_USERS=true to the profile's .env for testing (or scope it with DISCORD_ALLOWED_CHANNELS / _USERS / _ROLES), then restart. This is the most common reason a correctly-configured bot looks broken.
Full Setup Sequence
The complete flow from zero to a running Hermes agent.
- 01Download and install Hermes Desktop, launch it
- 02Complete the onboarding wizard, paste your DeepSeek API key when prompted
- 03Edit
~/.hermes/SOUL.mdwith a focused identity - 04Capabilities → Messaging → Telegram, scan the QR code (and Discord, if wanted)
- 05Restart the gateway to apply changes
- 06DM your bot to confirm it responds, then head to Module 04 to connect Sectors