Skip to Content
GuidesUse Hermes Agent

Use Hermes Agent

Hermes Agent  is an open source autonomous agent built by Nous Research . It runs autonomously for long stretches, builds persistent memory, spawns subagents in parallel, and reaches you on Telegram, Discord, Slack, and other platforms while working on a remote VM.

Hermes has two browser drivers, and Lightpanda plugs into both:

  • Browser Use mode — the default since August 2026. The agent gets a single browser_exec tool that runs Python against a browser over CDP through the Browser Use CLI .
  • Built-in browser tools (browser_navigate, browser_snapshot, …) — the older driver, which reaches browsers through agent-browser .

Pick the section below that matches your driver. The setting is the same (browser.engine: lightpanda), what differs is what else has to be true for Hermes to honour it.

Prerequisites

  • Hermes Agent v0.21.0 or later (hermes update, then hermes --version)
  • Lightpanda installed and on your PATH — check with which lightpanda

If you don’t have Lightpanda yet, follow the installation guide. Hermes and agent-browser also look in ~/.lightpanda/lightpanda and ~/.local/bin/lightpanda.

For the built-in tools path, use Lightpanda 0.3.7 until agent-browser ships its launcher fix: nightly builds from 2026-08-27 onward reject the --timeout flag agent-browser still passes at launch, so Lightpanda never starts and every action silently falls back to Chrome. Browser Use mode is not affected.

Option A — Browser Use mode (the Hermes default)

Since Hermes v0.21.0, Browser Use mode honours browser.engine: lightpanda natively: Hermes starts lightpanda serve itself, one process per session, and hands its endpoint to the Browser Use CLI for every browser_exec call.

Either pick Lightpanda in hermes tools → Browser Automation, or set it in ~/.hermes/config.yaml:

browser: cloud_provider: local engine: lightpanda

cloud_provider: local matters: browser.engine is the lowest-precedence browser setting in Hermes. It is ignored whenever a cloud provider is active — and on a setup that never picked a browser, any BROWSERBASE_API_KEY, BROWSER_USE_API_KEY or Nous subscription browser in ~/.hermes/.env selects one automatically. A browser.cdp_url / /browser connect override takes precedence too. Since v0.21.0, /browser status and hermes doctor tell you when the engine is set but shadowed, and by what.

Lightpanda holds one page per CDP connection: the first new_tab(url) works, a second one fails with TargetAlreadyLoaded. Hermes tells the agent to navigate with goto_url(url) after the first new_tab, and capture_screenshot() is unavailable — Lightpanda has no graphical renderer.

Option B — Built-in browser tools

Switch Hermes off Browser Use mode and select Lightpanda as the local engine:

# ~/.hermes/config.yaml browser: backend: "off" cloud_provider: local engine: lightpanda

(/browser use off inside Hermes writes backend: "off" for you.)

The same precedence rules as Option A apply (cloud_provider: local, no CDP override), plus one more: Camoufox (CAMOFOX_URL) also wins over browser.engine on this path.

Hermes drives Lightpanda through agent-browser --engine lightpanda over CDP, the same way it drives local Chrome, with automatic Chrome fallback: Lightpanda handles navigate, snapshot, click, type, scroll, back, press and eval; screenshots, browser_vision, PDF generation, file uploads and anything that errors on Lightpanda are retried on Chrome.

Before v0.21.0, on Ubuntu 23.10+, in Docker, or as root, Hermes injected Chromium sandbox flags (--no-sandbox) for every engine, and agent-browser rejects them under Lightpanda (Custom Chrome arguments (--args) are not supported with Lightpanda), so every action failed over to Chrome. Setting AGENT_BROWSER_ARGS yourself does not help; run hermes update.

Verify the configuration

Start Hermes and run /browser status.

Option A shows the engine and the binary Hermes will spawn:

Engine: Lightpanda — Browser Use mode: Hermes spawns `lightpanda serve` per session

If it instead reports browser.engine is 'lightpanda' but it is NOT in use: …, the message names what is shadowing it (a cloud provider, a CDP override, …); see the troubleshooting list below.

Option B shows the engine:

🌐 Browser: local Lightpanda (agent-browser --engine lightpanda) ⚡ Lightpanda: faster navigation, no screenshot support Automatic Chromium fallback for screenshots and failed commands

Then try a prompt that involves browsing:

Visit https://news.ycombinator.com and list the top 5 story titles.

To prove the engine rather than trust the status line, ask the agent for navigator.userAgent: Lightpanda reports Lightpanda/1.0.

Troubleshooting: Hermes uses Chrome even though I set the engine

Check, in this order:

  1. Is Hermes up to date? Browser Use mode only reads browser.engine from v0.21.0; run hermes update. From there, /browser status and hermes doctor say outright when the engine is shadowed.
  2. Is a cloud provider selected? browser.cloud_provider in config.yaml, or a cloud API key / Nous subscription browser on a never-configured setup. Set cloud_provider: local.
  3. Is a CDP override active? browser.cdp_url or a previous /browser connect (undo with /browser disconnect).
  4. Is Camoufox selected? Unset CAMOFOX_URL.
  5. Linux sandbox flags on Hermes older than v0.21.0 (Option B, see the warning above).
  6. Nightly --timeout rejection (Option B, see Prerequisites): run lightpanda serve --timeout 1 by hand; FATAL app : unknown argument means agent-browser cannot launch this build.

Further reading