---
site: steel.dev
collection: blog
canonical_url: https://steel.dev/blog/hermes-steel-plugin
markdown_url: https://steel.dev/blog/hermes-steel-plugin.md
content_signal: ai-input=yes, ai-train=yes, search=yes
related:
  - https://steel.dev/blog/steel-is-now-a-native-browser-provider-in-hermes.md
  - https://steel.dev/blog/notte-on-steel.md
  - https://steel.dev/blog/we-gave-pi-agent-a-real-browser.md
title: Steel now ships as a browser plugin for Hermes Agent
description: Give Hermes Agent a Steel cloud browser in two commands, with live session viewing, page extraction, and per-site proxy and CAPTCHA controls built in.
date: 2026-07-22
authors:
  - Nikola Balic
category: Product
minutes: 3
tldr: A standalone plugin for Hermes 0.18.0 and newer routes Hermes Agent's existing browser tools through a Steel cloud browser over CDP. Two commands install it; it returns a live session URL, adds steel_scrape for one-shot page extraction, and lets Hermes turn on residential proxies or CAPTCHA solving. Sessions cap at 30 minutes.
topics:
  - Browser providers for AI agents
  - Agent plugins
  - Cloud browsers
  - Page extraction
  - Live session viewing
  - Proxies and CAPTCHA solving
entities:
  - Hermes
  - Hermes Agent
  - Nous Research
  - Steel
  - hermes-steel
  - Chrome DevTools Protocol
answers_questions:
  - How do I use Steel as the browser for Hermes Agent?
  - Which Hermes version does the Steel plugin need?
  - How does the Hermes Steel plugin connect Hermes to a browser?
  - Can Hermes use residential proxies and CAPTCHA solving through Steel?
  - Does the Hermes Steel plugin work with self-hosted Steel?
---

# Steel now ships as a browser plugin for Hermes Agent

[Hermes](https://github.com/NousResearch/hermes-agent), Nous Research's open-source personal AI agent, can now run web tasks through Steel browser. The standalone plugin routes Hermes' existing browser tools through a cloud browser and adds live session viewing and page extraction. Hermes can take on trickier parts of the web, while you watch what it sees.

Back in April, [we wired Steel into Hermes and sent it through Google Travel and Booking.com](https://steel.dev/blog/steel-is-now-a-native-browser-provider-in-hermes). Hermes found a hotel, gave us a live view of the session, and built a skill from the run. Trying it yourself meant running our Hermes branch.

Hermes now has a plugin interface for browser providers. We moved the integration into its own repo and released it for Hermes 0.18.0 and newer.

You need:

- Hermes 0.18.0 or newer
- A [Steel API key](https://app.steel.dev/settings/api-keys). The free plan is enough to start.

```sh
hermes plugins install steel-dev/hermes-steel --enable
hermes config set browser.cloud_provider steel
```

The installer asks for your API key. The config command selects Steel; without it, Hermes keeps using local Chromium.

Then give Hermes a task:

```js nocopy
Navigate to news.ycombinator.com, summarize the front page, and give me the live session URL.
```

The first browser result includes a link like `https://app.steel.dev/sessions/<id>`. Open it and you can see the page the agent sees, which is usually where the answer is when a run gets weird.

## How Hermes browser calls reach Steel

Instead of teaching Hermes a second browser toolset, the plugin swaps the provider beneath the tools it already knows.

On the first browser call, `SteelBrowserProvider` creates a Steel session and returns its [Chrome DevTools Protocol (CDP)](https://chromedevtools.github.io/devtools-protocol/) WebSocket URL. Hermes' existing browser stack connects to that URL, so `browser_navigate`, `browser_click`, `browser_screenshot`, and the rest of the agent loop do not need Steel-specific versions.

The result hook adds the backend name and live-viewer URL to the first successful browser response. Hermes can pass both back to you instead of making you dig through logs or the Steel dashboard.

## Read a page without opening a browser

Not every page needs a browser. `steel_scrape` calls Steel's scrape API directly and returns markdown, HTML, readability output, or cleaned HTML. It avoids starting a browser when Hermes only needs to read.

Anything that clicks, types, or submits still uses the browser tools. `steel_scrape` is for one-shot extraction, such as reading a list of documentation pages before Hermes writes a summary.

## Session options and timeouts

For interactive pages, Hermes stays in the browser. If a site blocks the session or asks for verification, Hermes can call `steel_session_options`, enable a residential proxy or CAPTCHA solving, and try again. These options are set when the browser starts, so changing either one closes the current session and the next browser call creates a new one.

Sessions get a 30-minute cap by default. A separate 10-minute inactivity timeout catches sessions left behind when a Hermes process disappears.

## Why it lives in its own repo

We took two runs at adding Steel to Hermes itself. [PR #5555](https://github.com/NousResearch/hermes-agent/pull/5555) proved out the provider. By [PR #21182](https://github.com/NousResearch/hermes-agent/pull/21182), Hermes had a proper interface for browser-provider plugins, so we rebuilt on that.

We moved the code into its own repo and cut [v1.0.0](https://github.com/steel-dev/hermes-steel/releases/tag/v1.0.0) against that interface.

The separate package now tests against Hermes' real plugin loader and the live Steel API without adding Steel-specific code to their repo.

## A few edges

Residential proxies and CAPTCHA solving are off by default. They require a verified Steel Launch account: [add at least $10 in paid balance](https://app.steel.dev/settings/billing) to verify the account, and that balance goes toward usage. If either feature is unavailable, the session still starts and Hermes tells you what was dropped.

The plugin also supports self-hosted Steel through `STEEL_BASE_URL`. An API key is optional for a custom endpoint, and the plugin sends no credentials when one is not configured.

## Try it

Install the [Steel plugin for Hermes](https://github.com/steel-dev/hermes-steel) and run the example above.

Humans use Chrome. Agents use Steel.
