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.0.23.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.0.23-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: unbrowse_hermes-2.0.23.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.0.23.tar.gz
Algorithm Hash digest
SHA256 688f71a3ef4dffcfb51d8a232b297b6e7a2059b19e4b10c380f76f37f2f4b8af
MD5 61a79b129e9e71284a981fd100201b61
BLAKE2b-256 12a0d7e159592bdb18abfd2b498c6969aef9efa7e7243ad023059d6f0bc4b24e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unbrowse_hermes-2.0.23-py3-none-any.whl
Algorithm Hash digest
SHA256 197f57d054ef58002017c2763ed1e590d47de9ed6c41a1ee6a72616a3373a050
MD5 788f11356501b76b1873d1b59cd37a7f
BLAKE2b-256 8a45b78515c57e5122a1c26ff40227aa9a7fc393418984c54398d1e987df9410

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