Skip to main content

Hermes TinyFish Plugin

CI PyPI Python License: MIT Security Policy

TinyFish web search, content extraction, and optional credit-gated web automation for Hermes Agent.

This is an independent community plugin. It is not affiliated with, endorsed by, or maintained by TinyFish or Hermes / Nous Research.

TinyFish documentation currently describes Search and Fetch as free, and Agent and Browser as credit-consuming. This plugin treats Search and Fetch as the safe default entry point, but pricing and free-use assumptions are based only on current TinyFish docs and may change. Credit-risking features default to deny.

Install

Hermes Git plugin install:

hermes plugins install gabeosx/hermes-plugin-tinyfish --enable
hermes tinyfish setup

Python package install:

pip install hermes-plugin-tinyfish
hermes tinyfish setup

Safe Default Setup

hermes tinyfish setup configures TinyFish for Hermes web_search and web_extract only:

mcp_servers:
  tinyfish:
    url: https://agent.tinyfish.ai/mcp
    auth: oauth
    tools:
      include: [search, fetch_content]
      resources: false
      prompts: false

web:
  search_backend: tinyfish
  extract_backend: tinyfish

tinyfish:
  credit_policy:
    agent: deny
    browser: deny
    profile_setup: deny
    model_tools: deny

The plugin prefers TinyFish's hosted OAuth MCP server and falls back to REST with TINYFISH_API_KEY when MCP OAuth is unavailable. It may save TINYFISH_API_KEY to ~/.hermes/.env if you choose to add API-key fallback.

Verify the default Search/Fetch setup:

hermes tinyfish doctor
hermes tinyfish doctor --live

doctor --live performs only Search and Fetch checks.

Credit Policy

Credit-risking TinyFish capabilities are controlled independently:

hermes tinyfish credits status
hermes tinyfish credits set agent request
hermes tinyfish credits set browser allow
hermes tinyfish credits set profile-setup deny
hermes tinyfish credits set model-tools request
hermes tinyfish credits reset

Policies:

  • deny: fail closed. This is the default.
  • request: use Hermes' existing approval flow for each invocation.
  • allow: run without per-invocation approval.

model-tools controls whether model-callable TinyFish Agent tools are exposed. Even when model-tools is enabled, agent must also be set to request or allow.

Optional Capabilities

Browser Provider

TinyFish Browser can be selected as a Hermes cloud browser provider after explicit opt-in:

browser:
  cloud_provider: tinyfish
tinyfish:
  credit_policy:
    browser: request

When selected, TinyFish-backed browser_* calls are gated by the browser credit policy.

Agent API

Run TinyFish goal-based automation from the CLI:

hermes tinyfish credits set agent request
hermes tinyfish agent run --url https://example.com --goal "Find the pricing"
hermes tinyfish agent run-async --url https://example.com --goal "Extract product names"
hermes tinyfish agent status <run_id>
hermes tinyfish agent cancel <run_id>

Browser Context Profiles

Manage persistent TinyFish Browser Context Profiles:

hermes tinyfish profiles list
hermes tinyfish profiles create --name "Example account"
hermes tinyfish credits set profile-setup request
hermes tinyfish profiles setup-session <profile_id>
hermes tinyfish profiles save-setup <profile_id> --session-id <session_id>
hermes tinyfish profiles cancel-setup <profile_id> --session-id <session_id>

Search and Fetch Options

Optional REST fallback defaults can be configured in config.yaml:

tinyfish:
  search:
    location: US
    language: en
    recency_minutes: 1440
    domain_type: web
    page: 0
  fetch:
    format: markdown
    links: false
    image_links: false
    ttl: 3600

MCP remains the preferred path when configured. These options apply to REST fallback calls.

Diagnostics

hermes tinyfish status
hermes tinyfish usage
hermes tinyfish doctor --live
hermes tinyfish doctor --live-paid

doctor --live-paid respects credit policy. It refuses under deny, prompts under request, and runs under allow.

Upgrade Safety

This plugin uses public Hermes extension points:

  • ctx.register_web_search_provider(...)
  • ctx.register_browser_provider(...)
  • ctx.register_tool(...) for optional Agent tools
  • ctx.register_hook("pre_tool_call", ...) for credit policy gates
  • ctx.register_cli_command(...)
  • Hermes MCP config under mcp_servers
  • Hermes .env config helpers for optional API-key fallback

It does not patch Hermes Agent, update scripts, Dockerfiles, or files inside a Hermes installation or source checkout.

Development

python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e ".[dev]"
ruff format .
ruff check .
mypy hermes_plugin_tinyfish
pytest
python -m build

Live tests are opt-in:

TINYFISH_LIVE_TESTS=1 TINYFISH_API_KEY=... pytest tests/test_live.py

Maintainer Docs

References

Download files

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

Source Distribution

hermes_plugin_tinyfish-0.2.1.tar.gz (45.8 kB view details)

Uploaded Source

Built Distribution

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

hermes_plugin_tinyfish-0.2.1-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file hermes_plugin_tinyfish-0.2.1.tar.gz.

File metadata

  • Download URL: hermes_plugin_tinyfish-0.2.1.tar.gz
  • Upload date:
  • Size: 45.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hermes_plugin_tinyfish-0.2.1.tar.gz
Algorithm Hash digest
SHA256 3ff57e6b0af2b6170af43a716d382d29c077b816835b24a7598f11002f808ebc
MD5 c16ca0f45343e0151c4e28b0bf5946d9
BLAKE2b-256 f8ce47999bec966cfd71ceb7fc1de0ec05e4ea6aa6d4ae332edb4ea0a0578139

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_plugin_tinyfish-0.2.1.tar.gz:

Publisher: release.yml on gabeosx/hermes-plugin-tinyfish

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_plugin_tinyfish-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_plugin_tinyfish-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3530952689f3183144ca6bcaaf897d8de99bb7fa360bfea4fcabf055ad0c2d49
MD5 1dd8b924c4a7131d9cbc2444ec06384d
BLAKE2b-256 5e54fbde05b7d66fb1e5dec0e84a2856a38ba04a8255606042b7d59e5473fa6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_plugin_tinyfish-0.2.1-py3-none-any.whl:

Publisher: release.yml on gabeosx/hermes-plugin-tinyfish

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

Release history Release notifications | RSS feed

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.4

2 files

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

Supported by

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