npx skills add ...
npx skills add reason-machines/hermes-skills --skill hermes-desktop-companion
Desktop GUI companion for Hermes Agent - install, configure, chat with AI assistant featuring tool use, memory, skills, and multi-platform messaging
npx skills add reason-machines/hermes-skills --skill hermes-desktop-companion
Skill by ara.so — Hermes Skills collection.
Hermes Desktop is a native Electron-based desktop application for installing, configuring, and interacting with Hermes Agent — a self-improving AI assistant with tool use, multi-platform messaging, and closed learning loop. It provides a GUI alternative to CLI management with streaming chat, session management, profile switching, skill installation, memory editing, and gateway configuration.
~/.hermes with dependency resolution127.0.0.1:8642 or connect to remote API server/new, /clear, /fast, /web, /image, /browse, /code, /shell, /usage, /help, /tools, /skills, /model, /memory, /persona, /version, /compact, /compress, /undo, /retry, /debug, /statusDownload from GitHub Releases:
| Platform | File |
|---|---|
| macOS | .dmg |
| Linux (any) | .AppImage |
| Debian/Ubuntu | .deb |
| Fedora/RHEL | .rpm |
| Windows | .exe (NSIS installer) |
Or right-click → Open → confirm in dialog.
Download .exe from releases. Windows SmartScreen will warn (unsigned) — click "More info" → "Run anyway".
Future winget support:
AppImage (universal):
Debian/Ubuntu:
Fedora/RHEL:
Choose deployment mode:
~/.hermes, runs on 127.0.0.1:8642Local mode: Installer checks for Git, uv, Python 3.11+, then runs official Hermes install script
Configure provider: Select from OpenRouter, Anthropic, OpenAI, Google, xAI, Nous Portal, Qwen, MiniMax, Hugging Face, Groq, or custom local endpoint
Enter credentials: API keys are saved to Hermes config files (not stored by desktop app)
Launch workspace: Main UI opens with Chat, Sessions, Agents, Skills, Memory, Tools, etc.
Settings → Provider Config:
First run:
https://your-hermes-server.com/api/keys)Agents screen:
~/.hermes/profiles/<name> directoryMemory screen → Configure Providers:
Gateway screen → Select platform → Configure:
Telegram:
Discord:
Email (IMAP/SMTP):
WhatsApp (via Baileys):
Type naturally or use slash commands:
| Command | Description |
|---|---|
/new | Start new conversation |
/clear | Clear current chat |
/fast | Switch to faster model |
/web <query> | Force web search |
/image <prompt> | Generate image |
/browse <url> | Browse and extract from URL |
/code <task> | Execute code task |
/shell <command> | Run shell command |
/usage | Show token usage stats |
/help | List all commands |
/tools | Show enabled tools |
/skills | List installed skills |
/model [name] | Get/set current model |
/memory [query] | Search memory |
/persona | Show current persona |
/version | Show Hermes version |
/compact | Compress chat history |
/compress | Deep compress with MoA |
/undo | Remove last message |
/retry | Retry last message |
/debug | Toggle debug mode |
/status | Show system status |
Bottom of chat shows live counts:
Use /usage for detailed breakdown:
Skills screen:
Skills are markdown files with YAML frontmatter:
Skills screen → Click skill → Edit:
~/.hermes/skills/<name>/SKILL.mdMemory screen:
Chat naturally — Hermes auto-saves important context:
Or explicit:
Memory screen:
Configured in Memory screen → Configure Providers:
Sessions screen:
Right-click session → Delete or click trash icon.
Tools screen → Enable/disable toolsets:
| Toolset | Capabilities |
|---|---|
| web | Exa/Tavily search, Firecrawl scraping |
| browser | Playwright automation, screenshot, PDF |
| terminal | Shell command execution |
| file | Read, write, list, move files |
| code | Python execution in sandbox |
| vision | Image analysis (GPT-4V, Claude Vision) |
| image | Generation via FAL.ai/DALL-E |
| tts | Text-to-speech synthesis |
| skills | Install/manage skills |
| memory | Store/retrieve context |
| session | Search past conversations |
| clarify | Ask clarifying questions |
| delegation | Multi-agent task delegation |
| moa | Mixture-of-Agents synthesis |
| planning | Break down complex tasks |
Example enabling web tool:
Schedules screen → Create Task:
Schedule types:
Delivery targets: Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email, SMS, Webhook, Home Assistant, File, Terminal, Memory, Chat (in-app), Desktop Notification
This starts:
Renderer → Main:
Main handler:
Usage in Chat:
Output: dist/ directory with installers
Edit electron-builder.yml:
WSL: Grant temporary passwordless sudo (see Installation section)
General: Check logs in ~/.hermes/logs/install.log:
Hermes not running. Start manually:
Or restart from Settings → Restart Hermes.
curl https://your-hermes-server.com/healthhermes keys listCheck API keys in Memory → Configure Providers:
@BotFather, check allowed_users IDsSEND_MESSAGES permission in channeltelnet smtp.server.com 587RPM builds don't support auto-update. Download new .rpm and reinstall:
curl -I http://127.0.0.1:8642/health/debug in chat or Settings → View Logs → AgentDatabase index corrupt. Rebuild FTS5 index:
Remove quarantine:
Click "More info" → "Run anyway" (app is not code-signed).
Store in ~/.hermes/.env or OS-level environment.
Test suites:
MIT License — see LICENSE
sudo dpkg -i hermes-desktop-*.deb
sudo apt-get install -f # Fix dependencies if neededsudo dnf install ./hermes-desktop-*.rpm --nogpgcheckecho "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/hermes-install
# Re-run installer, then:
sudo rm /etc/sudoers.d/hermes-install// Example: OpenRouter setup
{
provider: "openrouter",
apiKey: process.env.OPENROUTER_API_KEY,
model: "anthropic/claude-3.5-sonnet",
baseUrl: "https://openrouter.ai/api/v1"
}
// Example: Local Ollama
{
provider: "openai",
apiKey: "not-needed",
model: "llama3.1:8b",
baseUrl: "http://localhost:11434/v1"
}# Profiles stored at:
~/.hermes/profiles/
├── default/
│ ├── config.yaml
│ ├── SOUL.md
│ ├── memory.db
│ └── sessions.db
└── work/
└── ...// Example: Honcho
{
provider: "honcho",
apiKey: process.env.HONCHO_API_KEY,
appId: "hermes-desktop",
userId: "user-123"
}
// Example: Mem0
{
provider: "mem0",
apiKey: process.env.MEM0_API_KEY,
userId: "user-123"
}enabled: true
bot_token: ${TELEGRAM_BOT_TOKEN}
allowed_users: [123456789]enabled: true
token: ${DISCORD_BOT_TOKEN}
channel_ids: [1234567890123456789]enabled: true
imap_server: imap.gmail.com
imap_port: 993
smtp_server: smtp.gmail.com
smtp_port: 587
username: ${EMAIL_USERNAME}
password: ${EMAIL_APP_PASSWORD}enabled: true
session_path: ~/.hermes/whatsapp-session
qr_code_callback: true> What's the weather in San Francisco?
[Hermes uses web search tool, returns answer]
> /web latest news on AI regulation
[Forces web search, streams results]
> /image a cyberpunk city at sunset
[Generates image via FAL.ai or configured provider]📊 Prompt: 1,234 tokens • Completion: 567 tokens • Cost: $0.0123> /usage
Session Usage:
Total Prompt Tokens: 12,345
Total Completion Tokens: 5,678
Total Cost: $0.123
Messages: 15