TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Divide the search. Conquer the results.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Private, on-device search routing.
divid3 is a meta-search router that runs entirely in your browser. It uses a small local ML model to read your intent, then sends you to whichever search engine you've decided handles that kind of query best — without a server, an account, or a middleman.檢視完整 README ↗Private, on-device search routing.
divid3 is a meta-search router that runs entirely in your browser. It uses a small local ML model to read your intent, then sends you to whichever search engine you've decided handles that kind of query best — without a server, an account, or a middleman.
Try the hosted instance at divid3.com
all-MiniLM-L6-v2 model embeds your query and picks the best-matching destination from your configured set.!yt, !eb, !m, …) that always win over the semantic router.github.com) and localhost:3000 route directly. Low-memory phones get a deterministic keyword router instead of the model.?q= URLs. No 4-second countdown. On mobile and on any link with a query string (e.g. browser-bar searches), the router shows you the top match plus the ranked alternatives and waits for you to tap. Desktop typing still routes immediately because the live score chips already let you click any destination.divid3 is built for people who want a search bar they actually trust — even when the destination itself isn't end-to-end private. The threat model is:
scripts/generate_search_embeddings.py) — there is no remote inference./api/route to intercept.scripts/search_phrases.json and it's gone everywhere, including from the on-device classifier.You're welcome to ship a fork that points only at Kagi, Brave, SearXNG, your own engine, or anything else. Same code, your engines.
!yt, !eb, etc. Always wins.github.com) and localhost:port detection.near me, pictures of, music video, used, …) add a small, capped boost on top (0.03 per keyword point, max 5 points), so an unambiguous cue isn't outvoted by a fuzzy semantic neighbor.?lite=1), a deterministic weighted-keyword scorer takes over.Routing quality is measured by scripts/eval_routing.py against a held-out benchmark of 582 labeled real-world queries (scripts/routing_benchmark.json — the validator enforces that no benchmark query is ever copied into the training phrases):
| Router | Accuracy |
|---|---|
| Semantic (top-3 cosine + keyword boost) | 98.8% |
Keyword (?lite=1) | 98.1% |
Run it yourself after any corpus edit:
python3 scripts/eval_routing.py # full report + misroute analysis
python3 scripts/eval_routing.py --query "best ramen" # probe a single query
The misroute report names the exact phrase that "won" each wrong routing, which makes corpus debugging mechanical: find the hijacking phrase, sharpen or remove it, re-run.
The router decides what kind of search a query is. Destinations (footer link, or press D) lets each person choose which site that kind opens. The defaults are below: every one works without an account, and they're spread across different companies rather than one. Every route offers alternatives such as ChatGPT, Claude, Lumo, Duck.ai or Perplexity for AI answers, X, Reddit, Bluesky or Google News for news, DuckDuckGo, Brave, Startpage or Google for web, Google Maps or Apple Maps for maps, and Amazon, Walmart, Target, Best Buy, Costco or Facebook Marketplace for shopping. Picks are saved in the browser's localStorage, never sent anywhere, and only when they differ from the defaults. The full list lives in destinations in scripts/search_phrases.json.
| Route | Used for | Default | Route bangs (follow your pick) |
|---|---|---|---|
ai | Explainers, research, writing, reviews, advice | Brave Ask | !ai, !l, !g, !gr, !p, !px |
x | Breaking news, live events, opinions, "what are people saying" | AP News | !news, !n |
ddg | Generic web search, quick facts, "best X" product research; fallback for anything ambiguous | DuckDuckGo (html) | !web |
maps | Locations, "near me", directions | OpenStreetMap | !m, !map |
images | Image queries | Bing Images | !i, !img |
youtube | Music, video, tutorials | YouTube | !v, !video |
ebay | Shopping: buying something ("buy a…", "deals on…", "where to buy"), plus used / vintage / parts / collectibles | eBay | !shop, !used |
Every site also has its own bang that reaches it whatever you picked: !yt, !eb, !x, !ddg, !lumo, !claude, !gpt, !pplx, !osm, !reddit, !ap and so on. The panel shows each site's bangs.
Plus the direct virtual engine, which opens a typed URL (github.com) literally instead of searching for it.
Add as a custom search engine:
https://divid3.com/?q=%s
Setup instructions for Chrome, Firefox, Safari, and Arc live at divid3.com/setup.html.
Keyboard shortcuts: / focus search · ↑/↓ change destination (while typing, or on the routing overlay) · Enter route to selection · Esc close overlay / revert selection · D destinations · T toggle theme · ? help.
# install deps (Playwright + serve + ESLint + TypeScript)
npm ci
# local dev server
npm run serve
# end-to-end tests (Chromium / Firefox / WebKit / mobile Safari)
npm test
# routing unit tests (config checks, keyword + semantic routing examples,
# benchmark accuracy floors). Semantic tests need the Python deps:
pip install -r scripts/requirements.txt
npm run test:unit
# lint everything (ESLint + TypeScript + Ruff + JSON config validator)
npm run lint
Everything is driven by one file: scripts/search_phrases.json. That file is the source of truth for engines, bangs, keyword fallback rules, and the training phrases that build the semantic index. The Python script reads it and emits two runtime artifacts:
search-config.json — small lookup tables the page loads at bootsearch-embeddings.json — L2-normalized phrase vectors for the ML router{
"engines": {
"my_engine": {
"name": "My Custom Search",
"urlTemplate": "https://example.com/?q={q}" // {q} is the URL-encoded query
}
},
"bangs": {
"my": "my_engine" // !my → my_engine
},
"keywordRules": [
{ "engine": "my_engine", "weight": 5, "kw": ["custom topic", "thing i want here"] }
],
"_routes": [
{
"key": "my_engine",
"label": "Display label for the index",
"phrases": [
"search for my custom topic",
"lookup something on my search engine"
]
}
]
}
Notes:
name and urlTemplate. No other fields are accepted — the validator rejects strays (including color, which the UI no longer uses).direct engine is special: its urlTemplate is "{q}" and it opens a literal URL the user typed._routes entry must be declared in engines. The validator and the generator both enforce this.ddg must exist; it's the universal fallback when nothing else is confident.ddg fallback route. Under nearest-neighbor pooling a bare word (buy, music, guide) becomes a universal attractor that hijacks unrelated queries — removing them was worth ~10 points of measured accuracy.scripts/routing_benchmark.json into the corpus; the benchmark must stay held-out (also enforced).# 1. Edit scripts/search_phrases.json — add engines, tweak bangs, drop phrases.
$EDITOR scripts/search_phrases.json
# 2. Measure the change against the routing benchmark.
python3 scripts/eval_routing.py
# 3. Regenerate the runtime artifacts.
python3 scripts/generate_search_embeddings.py
# 4. Bump EMBEDDINGS_VERSION in index.html so caches invalidate atomically.
# (search the file for EMBEDDINGS_VERSION = '...')
# 5. Sanity-check the change locally.
npm run lint # validates schema + corpus rules + drift with search-config.json
npm run test:unit # routing examples + accuracy floors
npm run serve
npm test
That's it — no JS edits required.
Every PR runs:
<script> blocks in index.html and setup.html (via eslint-plugin-html), and TypeScript (strict) over the Playwright specs.scripts/ and tests/unit/.scripts/validate_config.py). It catches missing engines, broken bang references, urlTemplates without {q}, and drift between search_phrases.json and the generated search-config.json.tests/unit/test_routing.py). They run the keyword and semantic routers against example tables and the held-out benchmark, and fail below the accuracy floors (97% semantic, 95% keyword)..github/workflows/search-tests.yml) on Chromium, Firefox, WebKit and mobile Safari.package.json is dev tooling only, and npm audit signatures verifies every package's registry signature in CI.permissions. Python deps are pinned too._site/), from a production environment._headers sets HSTS, frame-ancestors 'none', nosniff, no-referrer and a restrictive Permissions-Policy.Security issues: see SECURITY.md. Contributing: see CONTRIBUTING.md.
Code: MIT · Bundled model weights: Apache 2.0 (see models/).