What is Hermes Agent?
Hermes Agent is an open-source self-improving autonomous agent. Unlike a chatbot or a coding copilot, Hermes runs a closed learning loop by creating skills from experience, improving them during use, and building a persistent model of who you are across sessions. It runs wherever you put it: a VPS, a local machine, or serverless infrastructure. You can talk to it from your terminal, Telegram, or any supported messaging app you connect to it.Why connect ZenRows to Hermes?
- Every scraping task becomes a skill: When Hermes successfully scrapes a site through ZenRows, it can turn that workflow into a reusable skill. The next time you ask for competitor pricing or job board leads, it already knows how to execute your workflow.
- Access any website data without getting blocked: Proxy rotation, anti-bot evasion, and browser orchestration run on ZenRows’ infrastructure. Hermes asks for the page and gets the content regardless of the anti-bot system protecting it.
- Lower LLM costs per task: Raw HTML boilerplate burns tokens. ZenRows returns clean, structured, LLM-friendly Markdown or JSON, so Hermes processes only what matters and your token budget is managed.
- Reliable scheduled tasks: When Hermes runs a cron job, such as a daily digest, a price check, or a lead monitor, a blocked page breaks the whole run. ZenRows keeps those tasks completing consistently.
-
Works across parallel subagents: Hermes can spawn up to 3 concurrent subagents by default via
delegate_task, each with its own isolated context and toolset. Pair that with ZenRows and you can run a multi-source research task, with one subagent pulling competitor pricing, another monitoring job boards, and another tracking industry news, and have all three deliver structured results to your chat simultaneously. - Full browser automation, described in plain English: For sites that require login, pagination, or form interaction, Hermes can instruct ZenRows’ browser tools in natural language. No selectors, no scraping code.
What you can build with the Hermes-ZenRows integration
- A self-improving competitive intelligence feed: Schedule a daily cron job that scrapes competitors’ pricing, changelogs, and job pages, compares them against the previous run, and delivers only what changed to your Telegram or Slack.
-
A parallel market research agent: Give Hermes a research brief covering competitors, news sources, and job boards, and let it spawn concurrent subagents via
delegate_task, each scraping a different source through ZenRows. Hermes then synthesizes everything into a single briefing. - An ad research and content brief pipeline: Give Hermes a product URL and it scrapes the landing page, pulls winning hooks from Meta Ads Library and TikTok Creative Center, and writes a ready-to-use creative brief without you touching a single tab.
- A daily news and industry digest: Schedule Hermes to scrape Hacker News, RSS feeds, and industry blogs every morning, filter for what’s actually relevant to your work, and push a tight summary to your Telegram or Discord before you start your day.
- A pre-call research brief: Give Hermes a company name before a sales or partnership call and it uses ZenRows to scrape their site, recent news coverage, job postings, and any public announcements, then assembles a one-page brief in your messaging app before the meeting starts.
- A 24/7 monitoring agent on a remote server: Deploy Hermes on a VPS or serverless instance, point a set of cron jobs at protected pages via ZenRows, and get messaged only when something is worth your attention.
Connecting ZenRows to Hermes
This guide uses Anthropic as the LLM provider and the ZenRows MCP server. You can substitute any supported provider, but the setup steps shown here follow the Anthropic path. Before continuing, you need a ZenRows account and API key. Obtain one from the ZenRows dashboard.Install Hermes
hermes command itself. You don’t need to install those manually.Linux / macOS / WSL2:Configure your LLM provider
Test the chat model
Add ZenRows MCP to Hermes
hermes mcp catalog). ZenRows isn’t in the catalog yet, so add it manually to the config file instead.Hermes configuration lives in the ~/.hermes/config.yaml file. Open it in any editor. The path depends on your OS:- Linux / macOS / WSL2:
~/.hermes/config.yaml - Windows:
C:\Users\<username>\AppData\Local\hermes\config.yaml
mcp_servers block:hermes chat to reload the Hermes agent with your changes.Filtering ZenRows tools (optional)
If you want to restrict which ZenRows tools Hermes can use, for example allowing only thescrape tool and blocking browser automation, add a tools.include filter:
Getting started: Basic usage
With ZenRows connected, Hermes can fetch and process any page without writing a single line of code. Start a chat session and try:Advanced usage: Autonomous Scheduled Scraping
Hermes has a built-in cron scheduler. Pair it with ZenRows, and you can set up scraping tasks that run on a schedule and deliver results to any platform without you having to intervene.Setting up a daily price monitor
From inside a chat session, use the/cron command:
Monitoring important responses using the [SILENT] flag
For monitoring jobs, you only want to see when something changes. Include a[SILENT] flag to only get relevant alerts:
[SILENT], delivery is suppressed. No notification noise on quiet days.
Manage your cron jobs with the following commands:
Set up a messaging channel (optional)
Once ZenRows and Hermes are working, you can connect a messaging platform to receive scraping results and cron job outputs directly in your preferred chat app. The messaging gateway is a background process that handles all connected platforms and runs the cron scheduler. You need it running for message delivery to work.Configure your platform
/newbot command to @BotFather. Follow @BotFather’s instructions and enter the given bot ID into the interactive CLI. Once set up, scheduled cron jobs and agent results can be delivered straight to your preferred channel.Install and start the gateway as a background service
Troubleshooting
No response is returned in Telegram
The message was delivered to the bot, but the gateway isn’t running, so nothing is processing it.-
Confirm the gateway is running:
-
If it’s stopped, restart it:
@BotFather. An invalid token means the gateway connects but cannot send messages back.
ZenRows tools not loading after adding to config
- Confirm the config was saved to
~/.hermes/config.yaml. - Restart Hermes with the
hermes startcommand. - Verify your API key is correct and the ZenRows MCP endpoint is entered correctly.
Scraping returns empty or blocked content
ZenRows handles anti-bot systems automatically, but Hermes may sometimes use its built-in browser tool instead. If you’re seeing unexpected results, explicitly instruct Hermes to use ZenRows:Cron job runs, but no message is delivered
- Confirm the gateway is running:
hermes gateway status. - Run the job manually with
/cron run <job_id>to see the output immediately.
FAQ (Frequently asked questions)
Does ZenRows count as one of Hermes's 60+ built-in tools?
Does ZenRows count as one of Hermes's 60+ built-in tools?
mcp_zenrows_ prefix. They sit alongside Hermes’s native tools and the agent uses whichever is best for the task.Can I use ZenRows alongside Hermes's built-in browser tool?
Can I use ZenRows alongside Hermes's built-in browser tool?
How does Hermes decide when to use ZenRows vs. a direct fetch?
How does Hermes decide when to use ZenRows vs. a direct fetch?
Can I run Hermes and ZenRows on a remote server?
Can I run Hermes and ZenRows on a remote server?
~/.hermes/config.yaml, configure your messaging platform, and your scraping agent runs 24/7 without you needing to SSH in.Does Hermes store scraped content across sessions?
Does Hermes store scraped content across sessions?
Can I use the local stdio version of ZenRows MCP instead of the remote URL?
Can I use the local stdio version of ZenRows MCP instead of the remote URL?
@zenrows/mcp npm package. Both options expose the same tools and capabilities. The remote URL (https://mcp.zenrows.com/mcp) is recommended for Hermes since it requires no local installation. If you prefer the local stdio approach, you need Node.js installed and use this config instead:Can I connect multiple MCP servers alongside ZenRows?
Can I connect multiple MCP servers alongside ZenRows?
mcp_servers, and its tools are registered separately:Is there a cost to using ZenRows MCP with Hermes?
Is there a cost to using ZenRows MCP with Hermes?
scrape calls use Universal Scraper API credits, and browser_* calls use Scraping Browser credits. You can monitor usage on your ZenRows Analytics page.Can I install ZenRows through the Hermes MCP catalog?
Can I install ZenRows through the Hermes MCP catalog?
hermes mcp catalog) lists Nous-approved MCP servers. ZenRows isn’t currently in the catalog, so this guide walks through adding it manually to config.yaml. You can check the latest catalog entries by running hermes mcp catalog in your terminal.