Integrations

Integrations

Hermes connects to multiple services through gateways, API bridges, and direct tool access. Here’s what we’ve wired up and the gotchas we’ve hit.

Discord

Hermes communicates via a Discord bot through the messaging gateway. The gateway must be running for Discord messages to flow in or out.

Setup:

Key pitfall — Dev profile messaging: The dev profile was initially created without the messaging toolset, meaning it couldn’t use send_message to reach Discord. Fix: add messaging to the profile’s enabled_toolsets in config.yaml. Direct access is cleaner than relaying through another agent — eliminates one hop.

Delivery targets:

Firecrawl (Self-Hosted)

A self-hosted Firecrawl instance runs on a different server for web scraping, crawling, and content extraction.

Core features (Scrape, Crawl, Map, Search) works without any LLM — they handle HTTP fetching, HTML parsing, and content extraction deterministically.

Extract endpoint (/v1/extract) requires an LLM for structured data extraction using JSON schema. It reads OPENAI_API_KEY and OPENAI_BASE_URL environment variables. We wired LM Studio as the LLM backend:

Forgejo (Self-Hosted Git)

Internal Git server used for:

Email (Himalaya)

Terminal-based IMAP/SMTP email via the himalaya CLI. We built a skill covering:

Hermes API Server

Hermes exposes an OpenAI-compatible API server on port 8642 (configurable). This allows:

NGINX Proxy (Playground)

The Playground profile manages a Hermes created site served via NGINX on an LXC container. The nginx-site-admin skill is the governing umbrella for all site operations, cron jobs, and backup workflows.