Docs
Integrations
Hermes

Hermes

Run Frontrun inside a Hermes (opens in a new tab) agent. Hermes is Nous Research's self-hosted agent runtime: you own the box, the model key and the memory, and you talk to it from Telegram rather than a browser tab.

Frontrun plugs in as an MCP server, so the agent gets all 38 tools and spends credits against your own API key.

What you get

An always-on agent you can message from your phone. It holds context between messages, so "who converged this week" followed by "dig into the second one" works the way you would expect, and it can run a morning sweep on a schedule without you opening anything.

You need a Frontrun Pro key for this. API and MCP access are Pro-only. Pricing

The MCP block

If you already run Hermes, this is the whole integration. Add it to config.yaml in your $HERMES_HOME:

mcp_servers:
  frontrun:
    command: "npx"
    args: ["-y", "frontrun-mcp-server"]
    env:
      FRONTRUN_API_KEY: "your_api_key"

Restart the gateway and the tools are live. Everything below is about running the agent as a service rather than on your laptop.

Full deployment

1. Get the image

docker pull nousresearch/hermes-agent:v2026.5.28
⚠️

Run this on a plain Docker host. Railway rejects the base image because of its VOLUME instruction, and Fly breaks it because Firecracker will not give s6-overlay PID 1, which the image requires. A $12 DigitalOcean droplet is enough: 1 vCPU, 2 GB.

2. Seed the config

Hermes reads its config from a persistent volume. Create /opt/frontrun-data on the host and write two files into it.

config.yaml:

model:
  default: "anthropic/claude-sonnet-4-6"
  provider: "auto"
agent:
  max_turns: 60
  reasoning_effort: "medium"
memory:
  memory_enabled: true
  user_profile_enabled: true
session_reset:
  mode: both
  idle_minutes: 1440
  at_hour: 4
platform_toolsets:
  telegram: [hermes-telegram]
mcp_servers:
  frontrun:
    command: "npx"
    args: ["-y", "frontrun-mcp-server"]
    env:
      FRONTRUN_API_KEY: "your_api_key"

.env (chmod 600):

ANTHROPIC_API_KEY=sk-ant-...
TELEGRAM_BOT_TOKEN=123456:ABC...
TELEGRAM_ALLOWED_USERS=your_telegram_user_id
FRONTRUN_API_KEY=your_api_key

TELEGRAM_ALLOWED_USERS is an allowlist. Leave it empty and anyone who finds the bot can spend your credits.

3. Run it

docker run -d \
  --name frontrun-agent \
  --restart unless-stopped \
  -v /opt/frontrun-data:/opt/data \
  nousresearch/hermes-agent:v2026.5.28 \
  gateway run

Message your bot on Telegram. Ask it "what converged in the last 7 days" and you should get a tool call back.

Giving the agent an identity

Hermes reads SOUL.md from $HERMES_HOME and prepends it to every prompt. This is where you tell it that it is a deal-flow agent rather than a general assistant, which sectors you care about, and how you want findings formatted.

⚠️

Hermes scans context files for prompt-injection patterns before loading them, and pretend ... you are (or pretend ... to be) trips the role_pretend rule. The whole file is then silently discarded and your agent falls back to generic Hermes with no error. Write "never claim to be human" rather than "do not pretend to be a person".

Telegram gotchas

One poller per token. Telegram allows a single getUpdates consumer. Start a second container on the same bot token and both go silent with a getUpdates conflict. Use a separate bot for staging.

Keep the webhook empty. The gateway uses polling. If a webhook is registered on the token, polling never receives anything.

Acting on X

By default the agent reads Frontrun and nothing else: no X credentials on the box means it cannot post, follow or DM as you. If you want it to act on X, mount an xurl auth file into $HERMES_HOME/.xurl. Use the account's own token, never a shared one.

Tools available

The full Frontrun MCP surface. See MCP Server for the complete table.

ToolWhat it does
frontrun_convergenceEntities followed by multiple tracked accounts independently
frontrun_new_followsNew follows across your tracked accounts in a window
frontrun_trendingEntities ranked by attention across your tracked set
frontrun_companyCompany overview, founders, funding, resources
frontrun_discoverAccounts your tracked accounts follow that you are not tracking

Every response carries cost_credits and balance_credits, so the agent can see its own spend. Enable auto-refill if you leave it running unattended.