hermes-webclaw
Hermes Agent plugin providing native WebClaw v1 API support as a drop-in replacement for the bundled Firecrawl plugin.
What is WebClaw?
WebClaw is a fast, open-source web extraction toolkit built in Rust. It extracts clean markdown, JSON, or LLM-optimized text from any website using HTTP with browser-grade TLS impersonation — no headless browser required. 118ms average response time.
What this plugin does
Registers a WebSearchProvider subclass (webclaw) that Hermes's built-in
web_search, web_extract, and web_crawl tools route through, plus 9
dedicated tools for the full WebClaw v1 API surface:
| Tool | WebClaw endpoint | What it does |
|---|---|---|
webclaw_scrape |
/v1/scrape |
Single URL extraction — CSS filtering, screenshots, mobile UA, page Q&A |
webclaw_search |
/v1/search |
Web search with optional parallel scraping of result URLs |
webclaw_crawl |
/v1/crawl |
Async BFS site crawl with depth/page limits, sitemap seeding |
webclaw_extract |
/v1/extract |
LLM-powered structured data extraction via JSON schema or prompt |
webclaw_summarize |
/v1/summarize |
LLM-powered page summarization |
webclaw_diff |
/v1/diff |
Content change tracking against a previous snapshot |
webclaw_map |
/v1/map |
Sitemap discovery via sitemap.xml and robots.txt |
webclaw_batch |
/v1/batch |
Multi-URL extraction in a single concurrent request |
webclaw_brand |
/v1/brand |
Brand identity extraction — colors, fonts, logo, favicon |
Install
1. Get a WebClaw API key
Sign up at webclaw.io and create an API key from the
dashboard. Keys are prefixed with wc_.
2. Copy plugin files to Hermes
Run the install script on the Hermes host:
bash scripts/install.sh
Or manually:
PLUGIN_DIR=/usr/local/lib/hermes-agent/plugins/web/webclaw
mkdir -p "$PLUGIN_DIR"
cp scripts/plugin.yaml "$PLUGIN_DIR/plugin.yaml"
cp scripts/__init__.py "$PLUGIN_DIR/__init__.py"
cp scripts/provider.py "$PLUGIN_DIR/provider.py"
3. Set the API key
Add to ~/.hermes/.env:
WEBCLAW_API_KEY=wc_your_key_here
4. Set WebClaw as the web backend
Edit ~/.hermes/config.yaml:
web:
backend: webclaw
Or set per-capability:
web:
search_backend: webclaw
extract_backend: webclaw
crawl_backend: webclaw
5. (Optional) Disable Firecrawl
Both plugins register as web providers. If Firecrawl has credentials configured, disable it to avoid conflicts:
mv /usr/local/lib/hermes-agent/plugins/web/firecrawl \
/usr/local/lib/hermes-agent/plugins/web/firecrawl.disabled
6. Restart the gateway
sudo systemctl restart hermes-gateway
7. Verify
Check the gateway logs for WebClaw registration:
journalctl -u hermes-gateway --no-pager -n 20 | grep -i webclaw
Or run hermes tools and confirm WebClaw appears as the web backend.
Environment variables
| Variable | Required | Description |
|---|---|---|
WEBCLAW_API_KEY |
Yes | Your WebClaw API key (wc_...). Get one at webclaw.io. |
WEBCLAW_BASE_URL |
No | Override API base URL. Default: https://api.webclaw.io. |
Self-hosting WebClaw
If running webclaw-server locally:
WEBCLAW_API_KEY=your_secret
WEBCLAW_BASE_URL=http://your-server:3000
Uninstall
rm -rf /usr/local/lib/hermes-agent/plugins/web/webclaw
# If you renamed Firecrawl, restore it:
mv /usr/local/lib/hermes-agent/plugins/web/firecrawl.disabled \
/usr/local/lib/hermes-agent/plugins/web/firecrawl
sudo systemctl restart hermes-gateway