Hermes Agent

Run Hermes Agent's Browser Tools on Browserless

Hermes keeps its own browser tools. Browserless runs them on a cloud browser.

Browserless is now a browser provider for Hermes Agent, the open-source AI agent from Nous Research. The Browserless plugin, listed in the Hermes plugin catalog, runs Hermes' built-in browser tools on a Browserless cloud browser instead of a local Chrome. You get a stealth browser by default, plus residential proxies and CAPTCHA solving for AI agents with one setting each. It installs with one command and works on the Browserless free plan.

Agents spend a lot of their time on websites: they open pages, read them, click through forms, and come back with an answer. That only works if the browser underneath holds up, doesn't get blocked on the second page, and shuts down when the task is done.

There's nothing new to learn. Hermes keeps its navigate, snapshot, click, type, and screenshot tools. The plugin only changes where the browser lives.

What you get with Browserless as your Hermes Agent browser

Hermes' browser tools, running in the cloud. No local Chrome to install, update, or babysit. Every Hermes task that uses the browser gets a Browserless cloud browser, and it behaves the same way every time.

Better odds against bot detection, out of the box. The plugin uses a stealth browser by default. It hides the most common automation giveaways, like navigator.webdriver and the "HeadlessChrome" user agent. When a site needs more, residential proxies and automatic CAPTCHA solving are one setting each.

One-command install. The plugin installs from the Hermes plugin catalog with a single command, plus two config lines to switch it on.

Built for long agent tasks. If the network blips, the plugin reconnects to the same browser and the same page, so the agent picks up where it left off. When your plan's session time limit is reached, Hermes gets a fresh browser automatically. When the task ends, the browser is closed, even if you hit Ctrl+C, so nothing keeps running (or billing) in the background.

Works on the free plan. Stealth, residential proxies, and CAPTCHA solving are all available on the Browserless free plan.

Install the Browserless plugin for Hermes Agent

You'll need Hermes Agent 0.21.6 or later, and Node.js. Hermes drives the browser through the agent-browser CLI.

Install and enable the plugin, then make Browserless your browser provider:

hermes plugins install browserless --enable
hermes config set browser.cloud_provider browserless
hermes config set browser.backend off

Next, grab your API token from your Browserless account and add it to ~/.hermes/.env:

BROWSERLESS_TOKEN=your-token

Keep the token in that file. Don't paste it into a chat with the agent or commit it to a repo.

If agent-browser isn't installed yet, install it globally:

npm install -g agent-browser

Prefer a menu? Run hermes tools and choose Browserless under Browser Automation. It's marked as free there, since Browserless has a free plan.

Start a new Hermes session after installing, then try it:

hermes -t browser -z 'Open https://news.ycombinator.com and tell me the top 3 story titles'

The -t browser flag makes Hermes use its browser tools rather than its web-search tools, so the request goes through Browserless. Use single quotes around prompts in zsh, since ! inside double quotes triggers history expansion.

That's the whole setup.

Prefer Browserless' own tools (browserless_agent, browserless_smartscraper) over Hermes' built-in ones? Use the Browserless MCP server with Hermes instead.

Turn on stealth, residential proxies, and CAPTCHA solving

All settings live in ~/.hermes/.env, next to your token. You can also set them as environment variables for a single run.

SettingWhat it does
BROWSERLESS_STEALTH (default true)Stealth browser: hides navigator.webdriver and the "HeadlessChrome" user agent
BROWSERLESS_PROXY=residentialRoutes traffic through a residential IP (uses more plan units). BROWSERLESS_PROXY_COUNTRY=us picks the country; the IP stays the same for the whole session
BROWSERLESS_SOLVE_CAPTCHAS=trueBrowserless detects and solves CAPTCHAs automatically (reCAPTCHA, Cloudflare, and more). Works best together with the residential proxy
BROWSERLESS_BLOCK_ADS=trueBlocks ads and trackers
BROWSERLESS_BASE_URLPicks a region, e.g. https://production-lon.browserless.io

Stealth is already on, so most tasks need nothing else. Reach for the residential proxy when a site blocks datacenter IPs, and add CAPTCHA solving when a CAPTCHA stands between the agent and the page.

Here's a one-off run with both turned on, against Google's reCAPTCHA demo page:

BROWSERLESS_PROXY=residential BROWSERLESS_SOLVE_CAPTCHAS=true hermes -t browser -z 'Open https://www.google.com/recaptcha/api2/demo, click Submit and tell me what the page says'

What we saw in testing

We ran real Hermes agents against these settings before shipping. Here's what we found:

  • Stealth, default settings. A Hermes agent checked the bot-detection test page bot.sannysoft.com and reported no failing checks.
  • Residential proxy. The browser's IP came from a US home-internet provider, and wasn't flagged as a datacenter or proxy IP.
  • CAPTCHA solving for AI agents. With CAPTCHA solving on, Hermes passed Google's reCAPTCHA demo and got "Verification Success... Hooray!" back. One thing to know: the checkbox can still look unticked, because Browserless solves the CAPTCHA on its side. Submit the form as usual.
  • Real agent tasks. Multi-page research (opening and summarizing 8 Hacker News stories in one run), heavy news sites, iframes, pop-up dialogs, and parallel subagents that each get their own browser.

We ran all of it on the free plan, too.

Want to check the residential proxy yourself? Ask Hermes where its browser appears to be:

BROWSERLESS_PROXY=residential BROWSERLESS_PROXY_COUNTRY=us hermes -t browser -z 'Open https://ipinfo.io/json and tell me the IP, city, ISP, and whether it looks like a datacenter or a home connection'

Hermes Agent output through a Browserless residential proxy: a US Comcast IP that Hermes identifies as a residential connection, not a datacenter

How the Hermes Agent plugin works

Under the hood, Hermes runs more than one browser client for each task. Normally each one would open its own connection to the browser. The plugin puts a small local connection hub, a multiplexer, in between.

For each Hermes browser task, the plugin starts one Browserless browser and one multiplexer on your machine. Hermes' clients connect to the multiplexer, and they all share a single connection to Browserless:

agent-browser daemon ──┐
                       ├──▶  local multiplexer  ══ one connection ══▶  Browserless cloud browser
CDP supervisor       ──┘     (127.0.0.1, random port)

That design has a few practical benefits:

  • One task counts as one browser on your plan. Parallel subagents each get their own browser, as you'd expect.
  • Your API token is sent only to Browserless. Hermes' own clients talk to the local multiplexer and never see it.
  • Dropped connections recover. If the connection to Browserless drops, the multiplexer reconnects to the same browser and page, so the task can carry on.

The plugin's own connections to Browserless identify themselves with a browserless-hermes-plugin/<version> User-Agent, so we can see how much the plugin is used. No other data is sent, and it doesn't change the browser's user agent that websites see. Set BROWSERLESS_SOURCE_TAG=false to turn it off.

The plugin is open source under the MIT license. You can read every line in the browserless-mcp repo.

Limitations and troubleshooting

A few things worth knowing up front:

  • Some sites still block automation. Heavily protected sites can block automated browsing even with stealth, a residential proxy, and CAPTCHA solving turned on.
  • Local addresses stay local. Hermes opens localhost and LAN addresses in a local browser, since a cloud browser can't reach your machine.
  • A bad token fails quietly. If the token is missing or wrong, Hermes falls back to a local browser without an error. If results look like they came from your own machine, check the token first.

To see exactly what's happening, add a log path to ~/.hermes/.env:

BROWSERLESS_MUX_LOG=/tmp/browserless.log

When Browserless is in use, the log shows a line like create_session ... upstream=reconnect. If it couldn't start a session, the log explains why. Tokens are redacted in the log.

Browserless plugin connection log: one browser session with stealth, proxies, and CAPTCHA solving, two Hermes clients sharing one upstream connection, and the session closed when the task ended

Here's a full task in the log. Hermes' two browser clients connect to the local multiplexer and share one connection to Browserless. When the task ends, the plugin closes the browser.

Get started

Browserless gives Hermes Agent a cloud browser for AI agents that's harder to block, recovers from network drops, and cleans up after itself. It takes one command to install and two lines to switch on.

  1. Sign up for a free Browserless account and copy your API token.
  2. Install the plugin from the Hermes plugin catalog.
  3. Star the plugin repo on GitHub.

Tried it on a site that gave you trouble, or have an idea for the plugin? Open an issue on browserless/browserless-mcp. We read all of them.