Skip to main content

unbrowse-hermes

Hermes Agent plugin that makes Unbrowse the preferred tool for website tasks, replacing the built-in CDP browser automation.

Bootstrap Unbrowse first

curl -fsSL https://www.unbrowse.ai/install.sh | bash
unbrowse health

Installation

pip install unbrowse-hermes

The plugin auto-registers via the hermes_agent.plugins entry point. Hermes discovers it on startup, so restart Hermes after install — no config file needed.

Option B: Drop-in plugin directory

Copy the bundled plugin directory into Hermes's plugin directory:

mkdir -p ~/.hermes/plugins
cp -R dropin/unbrowse ~/.hermes/plugins/unbrowse

Hermes scans ~/.hermes/plugins/<name>/ for a plugin.yaml + __init__.py pair on startup.

Verify it loaded

Start Hermes and check:

/tools

You should see unbrowse in the tool list with actions: resolve, search, execute, login, skills, skill, health.

How It Replaces the Browser

What it replaces

Hermes ships with built-in browser tools via Chrome DevTools Protocol (CDP):

  • /browser connect — attaches to Chrome
  • The agent navigates pages, clicks, extracts text manually

This is slow, brittle, and returns unstructured text.

What unbrowse provides instead

A single unbrowse tool that reverse-engineers websites into cached API skills:

  • First call: captures traffic, discovers the API, returns structured JSON (~5-15s)
  • Subsequent calls: re-uses the cached skill (~300ms-1s)

Routing guidance

The plugin provides memory_instructions() that get injected into the agent's system memory:

"Use unbrowse first for any website data extraction, search, or authenticated reads. Only fall back to the browser tool for visual QA, drag-drop, canvas apps, or file uploads."

Note: Hermes has no before_tool_call hook for blocking other tools (unlike OpenClaw). The agent is guided via memory instructions, not forced. For strict blocking, consider using the MCP server integration instead.

"Skills" disambiguation

Hermes has its own "skills" concept (prompt+tool bundles in ~/.hermes/skills/). Unbrowse also uses "skills" for API endpoint bundles. The plugin's tool descriptions clarify: "unbrowse skill" = API endpoint bundle, not a Hermes skill.

Example Session

You: Get the trending repos on GitHub
Agent: [calls unbrowse with action=resolve, intent="get trending repositories", url="https://github.com/trending"]
Agent: Here are today's trending repositories:
  1. vercel/ai - 2,847 stars today
  2. anthropics/claude-code - 1,523 stars today
  ...

Actions

Action Description Required params
resolve Reverse-engineer a website into API endpoints intent, url
search Search the Unbrowse skill marketplace intent
execute Execute a cached skill endpoint skillId, endpointId
login Authenticate with a website url
skills List cached skills --
skill Inspect a specific skill skillId
health Check CLI health --

Optional: MCP Alternative

Hermes natively supports MCP servers. If you prefer the MCP approach (which works across multiple frameworks):

hermes mcp add unbrowse -- npx -y @unbrowse/mcp-server

This gives you the same tools without the Python plugin, but you lose memory_instructions() routing guidance.

Development

cd integrations/hermes
pip install -e .
python -m pytest tests/   # 22 tests

Metadata

Release files for unbrowse-hermes 2.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unbrowse-hermes 2.1.4
File Size Uploaded
unbrowse_hermes-2.1.4.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unbrowse-hermes 2.1.4
File Interpreter ABI Platform
unbrowse_hermes-2.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 13.4 kB

Release files / unbrowse_hermes-2.1.4.tar.gz

Download URL unbrowse_hermes-2.1.4.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
55b7591f9226042cb5c4918376c373556062db04b71b7f4f6fb615351c9c73bc
BLAKE2b-256 checksum
How to use checksums
40a838e21ad0603d186e3981529e1d8f9d8a05dbda5bd7f3113155f84910730e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / unbrowse_hermes-2.1.4-py3-none-any.whl

Download URL unbrowse_hermes-2.1.4-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a01828c05a9412df73621b2228576d18eeb20d5584e8e86d5702159d03b4cdbd
BLAKE2b-256 checksum
How to use checksums
66aa593ddfdbe4cd04b12824c726cd3e5f514f10b2cbf58aede038a555210e24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

2.1.4 This release

2 release files

2.1.3

2 release files

2.1.0

2 release files

2.0.23

2 release files

2.0.21

2 release files

2.0.16

2 release files

2.0.15

2 release files

2.0.14

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page