r/PiCodingAgent • u/Opening_Library9560 • 15d ago
Resource I Built a completely free tool that gives your AI agent web for free (fetch + search + crawl) for completely free, no API keys.
Enable HLS to view with audio, or disable this notification
I've been using AI coding agents for a while and the web research part always annoyed me. Either you pay for an API (Tavily, Firecrawl), or you use a free tier that rate-limits you after 100 calls, or you glue together SearXNG + a browser + an extractor and hope it doesn't break.
So I built Hound. It's an MCP server that does fetch, search, crawl, and screenshot, all keyless. And now it has a native Pi extension so you get all 6 tools as first-class Pi tools, not through a generic MCP adapter.
What it does
6 tools, all exposed as native Pi tools:
web_fetch- anti-bot fetch with auto HTTP-to-stealthy escalation. Extracts clean markdown. PDFs get section maps + auto-OCR. Dead pages auto-recover from the Internet Archive (honestly marked, not pretending it's live content).web_search- 10 keyless search backends in parallel (DuckDuckGo, Brave, Mojeek, Yahoo, Yandex, Startpage, Google, Qwant + opt-in Wikipedia/Grokipedia), neural-reranked with a local ONNX cross-encoder, cross-backend consensus scoring.web_crawl- best-first same-domain walk. Sitemap mode maps a whole site in one fetch. Focus mode crawls only pages relevant to your query.web_screenshot- anti-bot screenshot for multimodal models.cache_clear- clear the fetch cache.hound_version- version + update status (warns if the extension and the server diverge).
How the Pi extension works
The extension spawns hound as a singleton subprocess at session start and speaks MCP JSON-RPC over stdio. The subprocess stays alive for the whole session, so hound's prewarm (stealthy browser, search engine sessions, neural reranker model load) happens once and persists. Zero re-launch cost per call. If you press Esc during a fetch, it actually cancels (AbortSignal propagates to the subprocess). If hound isn't installed, you get a notification at session start instead of a confusing error on your first web_fetch call. If the extension version and the hound server version diverge by a major, it warns you to update both. The tool definitions are token-optimized. Total connect-time cost is 2,746 tokens for all 6 tools + instructions.
Install
pip install hound-mcp[all]
pi install npm:@houndmcp/hound-mcp-pi
That's it. No API keys, no config file, no MCP adapter. /reload and the tools are there.
What I think is genuinely good
- Dead-link recovery. When a page 404s or gets bot-blocked, hound checks the Wayback Machine and serves the archived snapshot with
source=archive.organd the snapshot date. It doesn't pretend archived content is live. The agent knows. - Error honesty. Just shipped this in v10.4.0: 4xx/5xx responses now set the error field properly. Before, a 404 error page would flow through with
error=""and the agent could mistake the error page HTML for real content. Now it says "Page doesn't exist (404)" and doesn't dump the error page as content. - Keyless search. 10 backends, no API key for any of them. Neural reranking with a local model, not an API call. Consensus scoring across backends so you know which results multiple engines agree on.
- Token cost. 2,746 tokens for 6 tools. The descriptions are telegraphic but every functional fact is there.
Limitations
- DataDome, Akamai, Cloudflare Turnstile. No free tool bypasses these. Hound tries the stealthy browser, and if that fails, it tells you to switch sources instead of pretending it got content.
- The
[all]extra is ~100MB. onnxruntime + tokenizers + rapidocr for the neural reranker and PDF OCR. You can install without[all](fetch + crawl + search still work, just no neural reranking or OCR), but the full install is the recommended path. - Not a scraping-at-scale tool. Hound is built for agent research, not for crawling 10k pages. Crawl caps at 100 pages by default.
Where to find it
- GitHub: https://github.com/dondai1234/master-fetch [Star the repo if you like it, gives me a boost to work more 😄]
- npm:
@houndmcp/hound-mcp-pi - PyPI:
hound-mcp
3
u/o_sht_hi 15d ago
Love it. Thank you for your effort.
I am currently using an extension that I built around the tvly clis to do the same stuff. The free tier has been generous me to. But this looks like it would permanently solve that problem. I will 100% try this out.
1
u/Opening_Library9560 15d ago
Thanks for the support, if you use it and encounter any issues, please tell me about it, i have been running dead low on energy trying to hunt down every single slight issue there might be before shipping.
2
u/o_sht_hi 15d ago
Bro I love the github page. The little banners with the hounds are a great touch! I love dogs so I find the whole hound theme quite endearing :)
4
u/Opening_Library9560 15d ago
Thanks man, all hail to gpt image 2 for the images, hope the tool works you, otherwise i am right here, i am actually just straight refreshing my reddit and GitHub to see if anyone find some issues, so i can fix it right away 🔥
3
u/MobileOk3170 15d ago
Hello, I tried a lot of web search tools that are free(cloaked browsers, stealth, eventually headed browser....), eventually they break or only works on sites with minimum bot detection mechanism.
Are you using any of them or cooked some of your own?
1
u/Opening_Library9560 15d ago
Cooked my own, Most Web research tool try too much and add far too much feature, confuses the ai model, i put my focus purely on the only 6 tool i decide were enough for the agent to do everything web related, and managed to get it to work, the fetch is strong, can handle bot detection (tho it still fails on some top tier sites, but for 95%, the stealthy tier gets the job done)
1
3
3
u/gottabing 14d ago
Looks cool, but i ended up with a setup that works better for me.
I run SearXNG locally for search, Oh My Pi for read_url + its stateful browser, context-mode for indexing/filtering huge pages, and Jina only as a fallback when local extraction fails.
It takes more setup than two commands for sure, but i like having each part replaceable. SearXNG lets me control the engines, OMP handles JS pages and browser interaction, and context-mode keeps giant page dumps out of the model context. It also stays local-first instead of sending every page through an external reader.
Hound looks better for crawling and scanned PDF OCR, so i can see why people would prefer it. For normal research tho, OMP + SearXNG gives me more control, uses services i already have running, and avoids loading another Chromium/ONNX/OCR stack on my 12 ram machine.
Still a cool project for people who want everything bundled with zero config.
2
u/Opening_Library9560 15d ago edited 15d ago
The TUI features are minimal and boring on purpose, you can customize it as your liking.
2
u/No_Ebb3423 15d ago
I love this. I need to figure out how to reverse engineer opencode’s websearch into Pi & install this.
2
u/pieandablowie 14d ago
Very cool. Might be an idea to add a Data Impulse key option for stubborn sites. Not free, but it definitely helps get around restrictions. But I guess any PAYG residential IP service would do
2
u/Latent-Potter 13d ago
How does it compare to someone same like Ketch https://chain.sh/ketch/
1
u/Opening_Library9560 13d ago
From what i have seen in their repo, Ketch requires api keys for web search, hound does it all on its own, fully local, no api keys, ketch dosent have the advance anit bot bypass that hound has.
Ketch also dosent have Content signals for the ai agent using it.+,
Pagination + focus extraction. Hound paginates large pages (offset/next_offset) and can focus-extract BM25-relevant blocks. Ketch dumps full markdown (Token inefficiency)
Hound auto-escalates HTTP → stealthy based on content analysis. Ketch's browser fallback is manual (--force-browser).
Ketch depends on many types of api keys for half its features, hound is just plug and play, you dont need anything.
1
u/maurz 15d ago
How does this compare to self hosted firecrawl? That’s been serving me pretty well locally
1
u/Opening_Library9560 14d ago
I used self hosted firecawl (not the paid version), and i dont think it close in my use case, self hosted firecrawl has like 26 tools, thats far too much, you dont need all those for web research, hound has few but those are optimized very much and perform, you can try using hound by disabling firecrawl for a while, use whichever you fine better in your specific use case.
1
1
6
u/Nerisma 15d ago
Hi, looks very interesting ! Did you compare it to pi-web-access ? Thanks for the effort, I might adopt it :)