Skip to main content

Hermes Agent plugin that makes Unbrowse the preferred tool for website tasks.

Project description

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

Option A: pip install (recommended)

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unbrowse_hermes-2.1.4.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unbrowse_hermes-2.1.4-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file unbrowse_hermes-2.1.4.tar.gz.

File metadata

  • Download URL: unbrowse_hermes-2.1.4.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for unbrowse_hermes-2.1.4.tar.gz
Algorithm Hash digest
SHA256 55b7591f9226042cb5c4918376c373556062db04b71b7f4f6fb615351c9c73bc
MD5 39342975bcd48ccbfc0e47f2b9ead610
BLAKE2b-256 40a838e21ad0603d186e3981529e1d8f9d8a05dbda5bd7f3113155f84910730e

See more details on using hashes here.

File details

Details for the file unbrowse_hermes-2.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for unbrowse_hermes-2.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a01828c05a9412df73621b2228576d18eeb20d5584e8e86d5702159d03b4cdbd
MD5 f81dbe547901861be438eb9a13de8b3c
BLAKE2b-256 66aa593ddfdbe4cd04b12824c726cd3e5f514f10b2cbf58aede038a555210e24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page