Skip to main content

Hermes TinyFish Web Search

Give your Hermes agent live access to the web — powered by the TinyFish API.

When your agent needs to look something up, this plugin answers with grounded, sourced results instead of stale training data. It covers the full TinyFish API surface: search, content extraction, browser sessions, and agent automation.

Why use this plugin?

Real answers from the live web. Your agent's training data ends months ago. This plugin connects it to TinyFish so it can answer questions about today's world — breaking news, current docs, recent releases, real-time events.

Search is free. TinyFish Search API does not consume credits. Fetch API is also credit-free. You only pay for browser and agent automation runs.

Complete API coverage. This plugin exposes all four TinyFish APIs as discrete tools: Search for ranked results, Fetch for page extraction, Browser for remote CDP sessions, and Agent for goal-based automation.

Zero maintenance. The provider self-registers with Hermes at startup. There is nothing to configure beyond pasting your API key.

What you'll need

  • Hermes agent installed and working (any platform — CLI, desktop, Telegram, Discord, etc.)
  • A TinyFish API key (free tier available)

Getting a TinyFish API key

  1. Go to agent.tinyfish.ai/api-keys in your browser
  2. Sign up for a free account or log in if you already have one
  3. Create an API key and copy it

Installation

One command

From inside your Hermes environment:

pip install hermes-tinyfish-web-search

Or from source

git clone https://github.com/your-username/hermes-tinyfish-web-search.git
cd hermes-tinyfish-web-search
pip install .

Configuration

Step 1 — Add your API key

Open ~/.hermes/.env in any text editor and add one line:

TINYFISH_API_KEY=your-api-key-here

Step 2 — Enable the plugin

Open ~/.hermes/config.yaml and add hermes-tinyfish-web-search to your enabled plugins:

plugins:
  enabled:
    - hermes-tinyfish-web-search

Step 3 — Tell Hermes to use it

In the same config.yaml file, under the web section, set the backend:

web:
  backend: tinyfish

The full config.yaml will look something like this:

plugins:
  enabled:
    - hermes-tinyfish-web-search

web:
  backend: tinyfish

Step 4 — Restart Hermes

Quit and restart your Hermes agent. On the next question that needs web access, the agent will use TinyFish.

Available tools

The plugin registers six tools under the tinyfish toolset:

Tool API Description
web_search_tinyfish Search Web search with geo-targeting, date filters, news, and academics
web_extract_tinyfish Fetch Extract clean page content from a single URL
web_extract_batch_tinyfish Fetch Extract content from up to 10 URLs in one request
browser_create_session_tinyfish Browser Create a remote browser session (returns CDP WebSocket URL)
browser_terminate_session_tinyfish Browser Terminate a browser session by session_id
agent_automation_tinyfish Agent Run goal-based browser automation with natural language

Search features

  • Geo-targeted results (location, language)
  • Date filtering (recency_minutes, after_date, before_date)
  • Domain type: web (default), news, research_paper
  • Domain filtering (include_domains, exclude_domains)
  • Academic search with pub_year_min/pub_year_max

Fetch features

  • Output formats: markdown (default), html, json
  • CSS selector scoping (include_selectors, exclude_selectors)
  • Cache control (ttl)
  • Extract links and image links

Browser features

  • Create remote browser sessions with CDP WebSocket URLs
  • Compatible with Playwright, Puppeteer, and any CDP client
  • Configurable inactivity timeout

Agent features

  • Goal-based automation with natural language instructions
  • Structured output with output_schema
  • Browser profiles (lite, stealth)
  • Step and duration limits

How it works

When your agent calls web_search("some query"), the plugin sends the query to the TinyFish Search API (GET https://api.search.tinyfish.ai) and returns ranked results with titles, snippets, and URLs.

When your agent calls web_extract(url), the plugin sends the URL to the TinyFish Fetch API (POST https://api.fetch.tinyfish.ai) for full-page content extraction in the requested format.

Under the hood, this uses httpx for HTTP requests. It is installed automatically as a dependency.

Per-capability routing

You can use TinyFish for search only (or extract only) while routing the other capability to a different provider:

web:
  search_backend: tinyfish     # TinyFish handles web_search
  extract_backend: keiroslabs   # KeiroLabs handles web_extract

Troubleshooting

"TINYFISH_API_KEY environment variable not set"

The plugin can't find your key. Check that:

  • ~/.hermes/.env exists and has a line starting with TINYFISH_API_KEY=
  • There are no extra spaces or quotes around the value
  • You restarted Hermes after adding the key

"Invalid TINYFISH_API_KEY" or "access denied"

Your API key may be incorrect or expired. Visit agent.tinyfish.ai/api-keys to verify your key is still active. Generate a new key if needed.

"TinyFish API: payment required"

Your subscription does not include access to the requested API (Browser or Agent). Visit agent.tinyfish.ai to upgrade your plan.

"Failed to connect to TinyFish API"

Check:

  • Your internet connection is working
  • You can reach https://api.search.tinyfish.ai in a browser or with curl
  • No firewall or VPN is blocking outbound HTTPS on port 443

Development

git clone https://github.com/your-username/hermes-tinyfish-web-search.git
cd hermes-tinyfish-web-search
pip install -e .
pytest

Tests use mocks so no API key or network access is needed to run the suite.

Download files

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

Source Distribution

hermes_tinyfish_web_search-1.0.0.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

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

hermes_tinyfish_web_search-1.0.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file hermes_tinyfish_web_search-1.0.0.tar.gz.

File metadata

File hashes

Hashes for hermes_tinyfish_web_search-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e53d941864c5870193bf9f14a57c6724998bcc819dc827a59bb20e4f4567e63a
MD5 7b0420f6c567192a3a84fedf9bd07b90
BLAKE2b-256 60cb3efc804a3cecfc63042ff2a55a2e0a57a750701fa965890d2b64c9b065b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_tinyfish_web_search-1.0.0.tar.gz:

Publisher: publish.yml on donbowman/hermes-tinyfish-web-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hermes_tinyfish_web_search-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_tinyfish_web_search-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc4474d445181bcf3a522dd4ae7773c4a991b9473f20e90b23b5dd96e543ce19
MD5 a73335982f74bbf7397cf389997203b7
BLAKE2b-256 2d1263f1527c39b66bed644718835813fe9af5cbc0fdcec9dc3ccb4ff7c961cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_tinyfish_web_search-1.0.0-py3-none-any.whl:

Publisher: publish.yml on donbowman/hermes-tinyfish-web-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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