tinyfish-integration — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited tinyfish-integration (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
TinyFish is a web toolkit for AI agents that provides search, fetch, and browser automation capabilities. Search and fetch are free for every account — no credits, no cost.
Search the live web and get structured, agent-ready results.
Use cases:
Parameters:
query (required): Search query stringlocation (optional): 2-letter country code (e.g., "US", "FR", "ID")language (optional): 2-letter language code (e.g., "en", "fr", "id")page (optional): Page number for pagination (default: 0)Example:
tinyfish_search(query="Hermes Agent AI", location="US", language="en")Response format:
{
"results": [
{
"title": "Page Title",
"url": "https://example.com",
"snippet": "Description text...",
"site_name": "Example Site"
}
]
}Pull the full content of any web page as clean extracted text.
Use cases:
Parameters:
urls (required): Single URL or comma-separated list (max 10)Examples:
# Single URL
tinyfish_fetch(urls="https://example.com")
# Multiple URLs
tinyfish_fetch(urls="https://site1.com, https://site2.com, https://site3.com")Response format:
{
"results": [
{
"url": "https://example.com",
"final_url": "https://example.com",
"title": "Page Title",
"description": "Meta description",
"language": "en",
"text": "# Heading\n\nClean extracted content..."
}
],
"errors": []
}Visit https://agent.tinyfish.ai/api-keys to get your API key.
Add to ~/.hermes/.env:
TINYFISH_API_KEY=sk-tinyfish-YOUR_KEY_HEREAdd to ~/.hermes/config.yaml:
toolsets:
- tinyfishhermes chat -q "Search for 'Hermes Agent' using tinyfish_search"The TinyFish tools are implemented in ~/.hermes/hermes-agent/tools/tinyfish_search.py:
https://api.search.tinyfish.aihttps://api.fetch.tinyfish.ai with JSON bodyBoth tools:
X-API-Key header for authentication| Tool | Use When |
|---|---|
| tinyfish_search | You need to find URLs or get current information |
| tinyfish_fetch | You already know the URL and need the content |
| Agent API | TinyFish should perform multi-step workflows |
| Browser API | You need direct browser control from your code |
~/.hermes/.env has the key# Fetch multiple URLs — errors don't affect other URLs
result = tinyfish_fetch(urls="https://site1.com, https://site2.com, https://invalid-url.com")
# Response includes both results and errors
{
"results": [...], # Successful fetches
"errors": [...] # Failed URLs with error messages
}# Search from specific country
tinyfish_search(query="best pizza", location="IT", language="it")# Get page 2 of results
tinyfish_search(query="AI agents", page=1)For sites protected by Cloudflare or requiring JavaScript execution, use the Browser API with CDP websocket automation.
See: references/cloudflare-bypass-pattern.md for complete workflow including:
Key pattern:
Runtime.evaluate with fetch()references/cloudflare-bypass-pattern.md~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.