Use Kernel cloud browsers with the browser_* tools in
Hermes Agent. The plugin creates
a Kernel browser, gives Hermes its CDP endpoint, and deletes the browser when the
Hermes session ends or becomes inactive.
- A current Hermes Agent installation with the
BrowserProviderplugin API - A Kernel API key
- Node.js 20 or newer for Hermes's
agent-browserdependency
hermes plugins install kernel/hermes-browser-plugin --enableSome Hermes versions prompt for KERNEL_API_KEY during installation and some
don't. Running hermes config set browser.cloud_provider kernel only selects
the provider; it doesn't set the API key.
- Open Capabilities → Tools → Browser Automation.
- Select Kernel.
- If
agent_browserhasn't been installed, click Run setup and wait for the one-time installation to finish. - Open the three-dot menu next to
KERNEL_API_KEYand enter an API key from the Kernel Dashboard. - Optionally set
KERNEL_PROXY_NAMEandKERNEL_PROFILE_NAMEfrom their three-dot menus. - In a terminal, run
hermes config set browser.inactivity_timeout 600so Hermes's cleanup timer matches the plugin's 10-minute Kernel timeout. - Restart any running Hermes chat or gateway so it reads the updated settings.
Select Kernel as the browser provider:
hermes config set browser.cloud_provider kernel
hermes config set browser.inactivity_timeout 600If installation didn't prompt for the API key, add KERNEL_API_KEY to the
active Hermes profile's .env file. hermes config env-path prints that file's
location. Install agent_browser once if needed:
hermes tools post-setup agent_browserVerify the plugin and configuration:
hermes plugins list
hermes config show
hermes doctorPull the latest plugin version with:
hermes plugins update browser-kernelRestart Hermes Desktop, a running chat, or the gateway after updating.
Kernel settings are read from the active Hermes profile's .env file.
| Variable | Default | Purpose |
|---|---|---|
KERNEL_API_KEY |
required | Authenticates requests to Kernel |
KERNEL_STEALTH |
true |
Enables Kernel's stealth browser mode |
KERNEL_PROXY_NAME |
unset | Resolves and attaches a Kernel proxy by name |
KERNEL_PROFILE_NAME |
unset | Loads a Kernel profile by name |
KERNEL_BASE_URL |
https://api.onkernel.com |
Overrides the Kernel API URL |
When KERNEL_PROFILE_NAME is set, the plugin launches the browser with
save_changes: true. Cookies, logins, and other profile changes are saved when
the browser ends.
The plugin always creates Kernel browsers with a 10-minute (600 second)
inactivity timeout. There is no plugin setting to override it. Kernel enforces
this timeout remotely, so it still removes the browser if the Hermes process
crashes or loses its connection before cleanup runs.
Hermes also has a separate local inactivity timer. It defaults to 120 seconds,
updates whenever Hermes runs a browser_* tool for the session, and checks for
stale sessions every 30 seconds. When it finds one, Hermes closes its local
agent-browser connection, calls this plugin to delete the Kernel browser, and
removes the session from its in-memory registry. Normal Hermes process exit also
runs this cleanup immediately.
Because the timers are independent, Hermes normally deletes an unused browser after roughly 2–2.5 minutes, before Kernel's 10-minute timeout. To align the Hermes timer with the Kernel timeout, run:
hermes config set browser.inactivity_timeout 600Restart Hermes after changing this setting.
Kernel standby incurs zero browser usage cost only when no CDP, WebDriver, live
view, or computer-controls client is connected. Hermes keeps an agent-browser
CDP session for each tracked browser, so increasing Hermes's cleanup timer can
also keep the Kernel browser active longer. The 10-minute setting improves
session continuity, but it doesn't guarantee ten minutes of zero-cost standby.
Run Hermes interactively so the browser remains available while you inspect it in the Kernel dashboard:
hermes chat --verbose --toolsets browserThen ask:
Use
browser_navigate, not web search, to open https://example.com. Callbrowser_snapshot, report the exact title andstealth_features, and tell me whether any cloud fallback warning occurred.
A passing run has all of these properties:
- The title is
Example Domain. stealth_featuresincludesstealth.- There is no
fallback_warning. - A matching browser appears in the Kernel dashboard.
- Exiting Hermes or waiting for inactivity cleanup removes the browser.
Hermes can fall back to local Chromium when a cloud provider fails. A successful navigation alone does not prove Kernel was used; check both the tool result and the Kernel dashboard.
Install uv, then run:
uv run pytest -q
uv run ruff check .To check registration against a Hermes source checkout:
scripts/check-hermes-integration.sh /path/to/hermes-agentThe integration check installs a temporary copy of the plugin, enables it, and
verifies that Hermes registers kernel alongside its bundled browser providers.
It does not create a live Kernel browser.
hermes plugins remove browser-kernelIf Kernel was the active browser provider, select another provider with
hermes setup tools or set local mode:
hermes config set browser.cloud_provider localMIT