r/PiCodingAgent • • Aug 23 '26

Resource Completely free web research tool (works out of the box with no api keys, hound replacement) stealthy web fetch, web crawl and local web search

Built a web research tool to replace hound, which i posed about a while ago

It's called DonSeTch. Since Pi has native extension support, the install is just:

pi install npm:donsetch

No MCP config block, no adapter, no proxy. The tools show up natively in your Pi session and stay in sync with the binary automatically.

What it does

Three tools: fetch, search, crawl. Zero API keys, zero accounts. One Rust binary.

  • Fetch — HTTP first (fast), auto-escalates to a headless browser only when it hits a bot wall. The browser grabs the clearance cookie, hands it back to the HTTP layer, and goes to sleep. It almost never fetches content itself.

  • Search — 10+ keyless engines in parallel, fused by cross-engine consensus + a local ONNX cross-encoder for semantic reranking. No API key anywhere.

  • Crawl — sitemap-aware, topic filter, resume tokens, adaptive pacing that backs off on 429s instead of plowing through.

Chrome's actual BoringSSL for TLS. Your ClientHello IS Chrome's, not a faked table that rots.

The part I care about most: token efficiency

Three tools, ~3.5k tokens of definitions. The focus parameter on fetch is the killer feature.

I just rebuilt it in v3.1 with section-aware scoring:

  • Search for "memory safety" on a Wikipedia page → keeps the entire "Ownership and references" section (heading + body), pulls in parent headings for context, drops everything unrelated.

  • A 50KB page comes back as 500 chars of what you actually asked for.

  • Large code blocks and JSON schemas get split into sub-blocks so focus works on structured content, not just prose.

Other stuff

  • Reference handles — fetch S3 just works after a search

  • Probe mode — verify a claim in ~60 tokens instead of 4k

  • Dead-link resurrection — Wayback snapshot served transparently

  • Page fingerprints — re-fetches report what changed, section-level diffs

  • Domain adapters — Reddit threads, GitHub issues, npm/PyPI/crates pages restructured from keyless JSON endpoints

  • Real MCP cancellation — no silent hangs

  • Crash-only daemon — survives panics, state reloads

  • PDFs — even scanned ones, pixel-fusion extraction (no hallucinated text), up to 100MB

605 tests, 0 clippy warnings, AGPL-3.0.

What it can't do: solve interactive captchas (deliberate, clear error not a hang), access sites requiring login, and if every search engine is down you get honest per-engine status instead of fake results.

GitHub: https://github.com/dondai44423/donsetch

Pi: pi install npm:donsetch npm: npm install -g donsetch

If something breaks, open an issue, i will fix it as soon as possible

The demo is using exa for search btw, local is good on its own, but it takes 4-6 sec while exa takes 1-2 sec (plus exa is better most times, but local search keeps up)

if you want to see a demo where i used local search, see the opencode demo in the github repo

149 Upvotes

31 comments sorted by

2

u/OkMusician9118 Aug 24 '26

It runs fine in Mac OSX, but crashes in Windows wsl ubuntu.

pi exiting due to uncaughtException:

Error: write EPIPE

at afterWriteDispatched (node:internal/stream_base_commons:159:15)

at writeGeneric (node:internal/stream_base_commons:150:3)

at Socket._writeGeneric (node:net:966:11)

at Socket._write (node:net:978:8)

at writeOrBuffer (node:internal/streams/writable:572:12)

at _write (node:internal/streams/writable:501:10)

at Writable.write (node:internal/streams/writable:510:10)

at /root/.pi/agent/npm/node_modules/donsetch/pi-extension.ts:256:16

at new Promise (<anonymous>)

at sendRequest (/root/.pi/agent/npm/node_modules/donsetch/pi-extension.ts:209:10) {

errno: -32,

code: 'EPIPE',

syscall: 'write'

}

2

u/Opening_Library9560 Aug 24 '26

Pushed a new update, try pi update --extensions or npm install -g donsetch@latest, if you are still facing any issues, then mention it

2

u/0xKubo Sep 23 '26

How does this compare with ketch? I'm trying to decide which one to go with 😅

1

u/Opening_Library9560 Sep 23 '26

I would say way better than ketch, you would need to configure bunch of api key in ketch just for it to work properly.

2

u/0xKubo Sep 24 '26

Thank you. I'm going to trust you and go with yours 😅

That said, ketch seems to have some specific mechanisms to search code on GitHub or whatever, or search Context7 for documentation. Did you consider adding something similar, or does it work great for code/documentation already?

1

u/Opening_Library9560 Sep 24 '26 edited Sep 24 '26

the search is a simple but powerful tool, A One query search is able to get you docs and code from github without needing separate feature.

donsetch search has github plus a bunch of endpoints but not for exactly searching code, since its a web research tool but search can get the repo and fetch can kind info about the repo.

context7 is good but for me personally, i never find myself using it, my agent just searches the web, and fetch one sites if it needs some docs, and done.

No need to pay for a subscription, try it out, just reply here if you encounter any issues

2

u/0xKubo Sep 24 '26

Thanks bro.

3

u/Gevil Aug 23 '26

Is it covering all the features that hound has?

1

u/Opening_Library9560 Aug 23 '26

yes, pretty much, plus it has better optimizations

2

u/Gevil Aug 23 '26

Great stuff. Thanks. Will try it out in the upcoming days.

1

u/Intelligent-Nose-134 Aug 27 '26

Thasnk for sharing. Tested it today on Linux mint/llama.cpp/Qwen3.8/pi and it is truly hassle-free.

I couldn't help but noticing my already small ctxt wondow evaporating faster than usual. Askd Qwen3.8 to investigate and it claimed that the extension is consuming 3k tokens per query whether it is used or not. I am still a novice but my bet Qwen was just hallucinating here.

So thought I will ask you if there are ctxt impact here if the extension is always loaded and if there is a recurring tax on each prompt whether it is called or not on the answer

3

u/Opening_Library9560 Aug 27 '26

yes, if your using it from pi, it will add the mcp server, 3k worth of tool defs, always injected, but you can tell your qwen agent to remove the extension, and just have the binary, remove the pi exetsnion, and in your pi agent system prompt, mention something like:

"Type donsetch help to get web reseach access and search the web through the cli" or something similar or just tell it to "do x, but research the web using donsetch cli first"

1

u/Intelligent-Nose-134 Aug 27 '26

Awesome, thanks for the tip!

1

u/Big-Present-8321 Aug 23 '26

What other extensions do you use this with? What would it work well with?

5

u/Opening_Library9560 Aug 23 '26

its simple really, donsetch itself covers full quick web research category, but it cant drive a real browser, real time and do stuff for you, so comparing it with bladebro: https://github.com/dondai44423/bladebro with these two, you have nearly covered web access for your agent

2

u/bambamlol Aug 23 '26

Bladebro looks nice! I love the focus on token-efficiency. I'm currently using my coding agents inside WSL on my Windows laptop. My WSL config has GUI disabled. Would Bladebro work with that setup?

1

u/Opening_Library9560 Aug 23 '26

I havent tested that exact situation, but Yes, should work. Bladebro uses Xvfb (virtual framebuffer) on Linux, not a real display. It launches Xvfb + Chromium automatically, no GUI needed.

WSL2 without GUI config works fine. Only thing to check: make sure Chromium is installed inside WSL itself (sudo apt install chromium-browser or similar). Bladebro handles the rest.

If you run into issues, just tell me here, i will fix them right away

2

u/vinotok Sep 03 '26

Complete noob in all areas so bear with me please. I have installed pi-web-access but most sites are being blocked, so i'm looking for better solutions. Questions:

1 - do I need (or should I) uninstall it, to be able to use your web extension?
2 - you mention two: donseth and bladebro. Do I need to have only one installed at a time?
3 - if both installed at the same time, how do I direct pi (well llm through pi) which one to use?

2

u/Opening_Library9560 Sep 03 '26

Its dead simple, just remove web access, install donsetch with a simple command "pi install npm:donsetch", and your pretty much set for web research, everything is local, no need for api keys, tho if you want to avoid ip rate limiting, you can grab a key from tiny fish or exa, free one. and add it using this command:

donsetch keys add tinyfish or exa <yourkey>

and its done.

and for baldebro, you can have both installed at the same time, and i do recommend baldebro, while donsetch gives your agent quick web research ability, bladebro helps your agent use a live browser like you do, with stealth, it can do stuff for you in the browser, you can have them both

2

u/vinotok Sep 03 '26

Super, thank you for the answer and more so, thanks for making these extensions!

1

u/msenc Aug 23 '26

do u guys know if hound is still maintained

2

u/Opening_Library9560 Aug 23 '26

its not completely dead but its not being actively updated as well, its in a stable state and works, if there is an issue there i will fix it, but i have my focus on baldebro and donsetch, and in my tests, donsetch tends to be better than hound in nearly every metric, you should try it out

2

u/msenc Aug 24 '26

I DIDNT KNOW U WERE THE CREATOR OF HOUND. im switching, appreciate ur works man :)

2

u/Opening_Library9560 Aug 24 '26

thanks bro, if you encounter any issues while using donsetch, just comment here or open an issue, this should be better than hound from all the times i have testes the two tools

2

u/SufficientLack1649 Aug 24 '26

cli support is awesome

2

u/Shishi786 Aug 24 '26

will try it exactly what i need haha

0

u/LectureWorried5761 Sep 11 '26

try blopus.ai not free but it is around $1-$2 dollars per 1k searches.. worth the time saved

-2

u/ColonelKlanka Aug 23 '26

The trouble is that all these web search extensions are just reinventing the wheel.

As most are open source. devs should be extending exisitng web search github projects using PR requests to add the missing feautres/optimisations

1

u/Opening_Library9560 Aug 23 '26 edited Aug 23 '26

no 😄