Hermes Agent + Steel Browser: Let Your AI Agent Browse the Web

Hermes Agent + Steel Browser: Let Your AI Agent Browse the Web

Hermes Agent + Steel Browser: Let Your AI Agent Browse the Web

/

/

San Francisco

San Francisco

/

/

Nikola Balic

Nikola Balic

Steel is now available for Hermes Agent as a standalone browser-provider plugin. Install it, set STEEL_API_KEY, and select steel as your cloud browser provider. Hermes routes its browser_* tools through Steel and adds a steel_scrape tool for one-shot page extraction.

We first proposed Steel support in PR #5555. The second pass, PR #21182, rebuilt the integration around Hermes' newer browser-provider interface.

Recent changes to Hermes added a supported standalone path for third-party browser providers. That gave us the right way to publish the integration without mcuh complexities.

Setup

You need Hermes Agent 0.18.0 or newer and a Steel API key. Then run:

hermes plugins install steel-dev/hermes-steel --enable
hermes config set

hermes plugins install steel-dev/hermes-steel --enable
hermes config set

The installer prompts for your Steel API key and saves it to ~/.hermes/.env. The second command selects Steel as the browser backend. Don't skip it: the plugin doesn't replace Hermes' local browser unless you choose steel explicitly.

Proxy and CAPTCHA solving are optional and off by default. They require a verified Steel account. You can set them as persistent defaults:

hermes config set browser.steel.use_proxy true
hermes config set browser.steel.solve_captcha true
hermes config set browser.steel.use_proxy true
hermes config set browser.steel.solve_captcha true

What happened

We ran Hermes and gave it one task:

Find me the best hotel near Grand Central New York and show me Steel's session URL so we can observe what the agent is doing.

Agent started working. It went to google.com/travel, searched for hotels, then navigated to Booking.com on its own. Nobody told it to go there. It decided that's where the data was.

This part was slow. LLMs are slow between actions. The agent was navigating, clicking through hotels, ruminating. The web is hard. For doing anything meaningful on it, you need a proper browser.

While this was happening, the live session was visible in Steel's dashboard.

Watching it work

You don't need to watch every click. But when something goes wrong, when the agent misclicks or gets lost in some modal, you need to see what it was looking at. That's the difference between debugging and guessing.

The integration pipes Steel's live viewer URL back into Hermes responses, so you get the link right in the agent's output. And if the agent hits bot detection, it knows to start stealth session or fall back to steel_scrape instead of retrying the same approach.

The agent built its own skill

After finishing the hotel search, Hermes created a skill called "hotel search" on its own. Nobody asked it to. It had lived through the whole navigation sequence and decided to package that up for next time.

We've seen the same pattern with Claude Code and Codex. Manual run, then script, then automation. The difference here is Hermes skipped being asked and just did the second step itself.

The scrape tool

The plugin includes steel_scrape, a dedicated tool for server-side content extraction. No browser session needed. It calls Steel's /v1/scrape API and can return markdown, HTML, readability output, or cleaned HTML.

Markdown that an agent can actually consume. Give it a list of URLs, have it ingest them, build a knowledge base. The scrape tool works separately from browser sessions, so use whichever fits.

More than one session

This was one agent in one session. Steel runs browsers in the cloud. Let loose a fleet of agents doing parallel sessions at the same time.

Each Hermes browser task gets its own Steel session. The plugin requests a 30-minute session cap by default, so longer agent tasks aren't cut off by Steel's shorter API default. It also releases sessions when Hermes finishes with them.

Changing proxy or CAPTCHA settings closes the current session. The next browser call starts a new one with those options. If the account doesn't include a requested feature, the session still runs without it and Hermes tells you what was dropped.

Any agent, any model

Hermes is open source. In our run, we used an open model from Z.ai. GLM 5.1 worked, and Hermes can switch models without changing the Steel browser setup.

The browser is the browser.

Try it

Install the plugin, select Steel as the cloud provider, and give Hermes a browser task.

Steel is now available for Hermes Agent as a standalone browser-provider plugin. Install it, set STEEL_API_KEY, and select steel as your cloud browser provider. Hermes routes its browser_* tools through Steel and adds a steel_scrape tool for one-shot page extraction.

We first proposed Steel support in PR #5555. The second pass, PR #21182, rebuilt the integration around Hermes' newer browser-provider interface.

Recent changes to Hermes added a supported standalone path for third-party browser providers. That gave us the right way to publish the integration without mcuh complexities.

Setup

You need Hermes Agent 0.18.0 or newer and a Steel API key. Then run:

hermes plugins install steel-dev/hermes-steel --enable
hermes config set

The installer prompts for your Steel API key and saves it to ~/.hermes/.env. The second command selects Steel as the browser backend. Don't skip it: the plugin doesn't replace Hermes' local browser unless you choose steel explicitly.

Proxy and CAPTCHA solving are optional and off by default. They require a verified Steel account. You can set them as persistent defaults:

hermes config set browser.steel.use_proxy true
hermes config set browser.steel.solve_captcha true

What happened

We ran Hermes and gave it one task:

Find me the best hotel near Grand Central New York and show me Steel's session URL so we can observe what the agent is doing.

Agent started working. It went to google.com/travel, searched for hotels, then navigated to Booking.com on its own. Nobody told it to go there. It decided that's where the data was.

This part was slow. LLMs are slow between actions. The agent was navigating, clicking through hotels, ruminating. The web is hard. For doing anything meaningful on it, you need a proper browser.

While this was happening, the live session was visible in Steel's dashboard.

Watching it work

You don't need to watch every click. But when something goes wrong, when the agent misclicks or gets lost in some modal, you need to see what it was looking at. That's the difference between debugging and guessing.

The integration pipes Steel's live viewer URL back into Hermes responses, so you get the link right in the agent's output. And if the agent hits bot detection, it knows to start stealth session or fall back to steel_scrape instead of retrying the same approach.

The agent built its own skill

After finishing the hotel search, Hermes created a skill called "hotel search" on its own. Nobody asked it to. It had lived through the whole navigation sequence and decided to package that up for next time.

We've seen the same pattern with Claude Code and Codex. Manual run, then script, then automation. The difference here is Hermes skipped being asked and just did the second step itself.

The scrape tool

The plugin includes steel_scrape, a dedicated tool for server-side content extraction. No browser session needed. It calls Steel's /v1/scrape API and can return markdown, HTML, readability output, or cleaned HTML.

Markdown that an agent can actually consume. Give it a list of URLs, have it ingest them, build a knowledge base. The scrape tool works separately from browser sessions, so use whichever fits.

More than one session

This was one agent in one session. Steel runs browsers in the cloud. Let loose a fleet of agents doing parallel sessions at the same time.

Each Hermes browser task gets its own Steel session. The plugin requests a 30-minute session cap by default, so longer agent tasks aren't cut off by Steel's shorter API default. It also releases sessions when Hermes finishes with them.

Changing proxy or CAPTCHA settings closes the current session. The next browser call starts a new one with those options. If the account doesn't include a requested feature, the session still runs without it and Hermes tells you what was dropped.

Any agent, any model

Hermes is open source. In our run, we used an open model from Z.ai. GLM 5.1 worked, and Hermes can switch models without changing the Steel browser setup.

The browser is the browser.

Try it

Install the plugin, select Steel as the cloud provider, and give Hermes a browser task.

Steel is now available for Hermes Agent as a standalone browser-provider plugin. Install it, set STEEL_API_KEY, and select steel as your cloud browser provider. Hermes routes its browser_* tools through Steel and adds a steel_scrape tool for one-shot page extraction.

We first proposed Steel support in PR #5555. The second pass, PR #21182, rebuilt the integration around Hermes' newer browser-provider interface.

Recent changes to Hermes added a supported standalone path for third-party browser providers. That gave us the right way to publish the integration without mcuh complexities.

Setup

You need Hermes Agent 0.18.0 or newer and a Steel API key. Then run:

hermes plugins install steel-dev/hermes-steel --enable
hermes config set

The installer prompts for your Steel API key and saves it to ~/.hermes/.env. The second command selects Steel as the browser backend. Don't skip it: the plugin doesn't replace Hermes' local browser unless you choose steel explicitly.

Proxy and CAPTCHA solving are optional and off by default. They require a verified Steel account. You can set them as persistent defaults:

hermes config set browser.steel.use_proxy true
hermes config set browser.steel.solve_captcha true

What happened

We ran Hermes and gave it one task:

Find me the best hotel near Grand Central New York and show me Steel's session URL so we can observe what the agent is doing.

Agent started working. It went to google.com/travel, searched for hotels, then navigated to Booking.com on its own. Nobody told it to go there. It decided that's where the data was.

This part was slow. LLMs are slow between actions. The agent was navigating, clicking through hotels, ruminating. The web is hard. For doing anything meaningful on it, you need a proper browser.

While this was happening, the live session was visible in Steel's dashboard.

Watching it work

You don't need to watch every click. But when something goes wrong, when the agent misclicks or gets lost in some modal, you need to see what it was looking at. That's the difference between debugging and guessing.

The integration pipes Steel's live viewer URL back into Hermes responses, so you get the link right in the agent's output. And if the agent hits bot detection, it knows to start stealth session or fall back to steel_scrape instead of retrying the same approach.

The agent built its own skill

After finishing the hotel search, Hermes created a skill called "hotel search" on its own. Nobody asked it to. It had lived through the whole navigation sequence and decided to package that up for next time.

We've seen the same pattern with Claude Code and Codex. Manual run, then script, then automation. The difference here is Hermes skipped being asked and just did the second step itself.

The scrape tool

The plugin includes steel_scrape, a dedicated tool for server-side content extraction. No browser session needed. It calls Steel's /v1/scrape API and can return markdown, HTML, readability output, or cleaned HTML.

Markdown that an agent can actually consume. Give it a list of URLs, have it ingest them, build a knowledge base. The scrape tool works separately from browser sessions, so use whichever fits.

More than one session

This was one agent in one session. Steel runs browsers in the cloud. Let loose a fleet of agents doing parallel sessions at the same time.

Each Hermes browser task gets its own Steel session. The plugin requests a 30-minute session cap by default, so longer agent tasks aren't cut off by Steel's shorter API default. It also releases sessions when Hermes finishes with them.

Changing proxy or CAPTCHA settings closes the current session. The next browser call starts a new one with those options. If the account doesn't include a requested feature, the session still runs without it and Hermes tells you what was dropped.

Any agent, any model

Hermes is open source. In our run, we used an open model from Z.ai. GLM 5.1 worked, and Hermes can switch models without changing the Steel browser setup.

The browser is the browser.

Try it

Install the plugin, select Steel as the cloud provider, and give Hermes a browser task.

Ready to

Build with Steel?

Ready to

Build with Steel?

Ready to

Build with Steel?

Ready to Build with Steel?

A better way to take your LLMs online.

© Steel · Inc. 2025.

All Systems Operational

Platform

Join the community