TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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/).