frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: routr - a fast local replacement for DuckDuckGo bangs

https://t128n.github.io/routr/
2•trbndev•7mo ago

Comments

trbndev•7mo ago
routr is a lightweight, offline search router inspired by DuckDuckGo's bangs. It's fully browser-based (no server requests needed other than the initial one) and routes queries like `!gh tokio` to GitHub, `!yt` to YouTube, `!hn` to Hacker News, etc.

What sets it apart:

- Runs entirely locally (no network, no tracking)

- Lets you define your own bangs and destinations

- Optionally rewrites queries for better precision (with AI)

Example:

Typing `article about german war in the stone age !!g` becomes: `site:en.wikipedia.org "german" AND "war" AND "stone age"`

More on query rewriting and performance:

https://tl128n.github.io/writings/2025-05-02_optimizing_sear...

Leftium•7mo ago
That link is broken. Correct link: https://t128n.github.io/writings/2025-05-02_optimizing_searc...
trbndev•7mo ago
Ah damn what a bummer that I can‘t edit the original comment anymore. Thank you for pointing it out… didn‘t even see that extra `l` there in the url
Leftium•7mo ago
> Typing `article about german war in the stone age !!g` becomes: `site:en.wikipedia.org "german" AND "war" AND "stone age"`

I wonder how much of that could be done without AI, just (locally) using https://www.npmjs.com/package/compromise

---

Also I couldn't find your source for bang data; Kagi maintains an updated list: https://github.com/kagisearch/bangs

I'm working on an enhanced version of bangs. Since there are so many "dead" bangs, I'm thinking of using a bang whitelist and suggestions from the full list if not found in the whitelist.

trbndev•7mo ago
What an interesting library. Thanks for mentioning it here… will definitely look into it!

—-

The bangs are at

https://github.com/t128n/routr/blob/main/src/sw/routes.ts

Mostly ripped from duckduckgo.com/bang.js and then pretty-formatted with Prettier… with some sane-defaults added like a bang for ChatGPT or T3 Chat

Leftium•7mo ago
Related project (also works locally):

- https://unduck.link/

- https://github.com/t3dotgg/unduck

- https://youtu.be/_DnNzRaBWUU

---

Note unduck works without service workers: https://github.com/t3dotgg/unduck/blob/91a66c25de8b0e7ac5ba5...

Is there any advantage to using service workers?

edit: Ah... unduck doesn't work from the browser search bar.

trbndev•7mo ago
Unduck actually also uses service workers to cache the app locally

https://github.com/t3dotgg/unduck/blob/91a66c25de8b0e7ac5ba5...

—-

> Is there any advantage to using service workers?

With service workers we can intercept the `fetch` request, before the index.html gets rendered/loaded. One should (in theory) be redirected some micro-seconds faster than doing the redirect in the index.html js