跳到正文
DEV Community· Vinit Chaurasia·· 3 小時前AI 評分45

findbox:以本機開源權重 Gemma 整理檔案,無需雲端

findbox: I built a tool that quietly organizes your digital mess while you sleep — 100% local, open-weight Gemma, zero cloud

AI 導讀

findbox 是一款開源、本機運行的檔案整理工具,使用 Ollama 在本機執行開源權重 Gemma 3,並以低 CPU 優先級整理檔案,資料不會離開裝置。它可按記憶中的內容搜尋檔案,亦能在 Ollama 未運行時改用確定性啟發式引擎。安全設計包括預設先行試跑、可復原操作、不覆寫或刪除檔案,伺服器僅限 localhost。

正文

🦥 findbox — Drop it in. Forget it. Find it by what you remember.

Built for Hacktoberfest 2026 Week 3: Slow & Steady (International Sloth Day). Open-source, 100% local, zero cloud.

👉 GitHub: chourasiavinit9-dev/findbox
🌐 Static Demo (judges): chourasiavinit9-dev.github.io/findbox


The Problem: Your Downloads Folder Is a Crime Scene

I have 847 files in my Downloads folder right now. IMG_4471.png (an Instagram recipe I'll never find), scan(3)_final_FINAL.pdf (who knows), WhatsApp Image 2026-09-14.jpg (could be anything), and buried in there somewhere — an electricity bill I need to pay.

Sorting this takes hours. So nobody does it. The mess compounds. Then one day you get a late fee because the bill was buried under 200 screenshots.

findbox solves this while you sleep.


The Build Session

I built the entire thing with Antigravity (Gemini coding agent) in one session:


The Lazy Workflow

# Run this once before bed
python3 sloth_box.py run --apply

# Wake up to everything organized. Then search:
python3 sloth_box.py serve  # http://127.0.0.1:8765
# Search: "paneer recipe september" → finds it instantly

Your effort: 1 command. That's literally it.

findbox runs at os.nice(19) — the absolute lowest CPU priority, yielding to every other process on the machine.


Why Open-Weight Models Were Non-Negotiable

Think about what's in your Downloads folder: bank statements, medical prescriptions, Aadhaar/passport scans, private WhatsApp exports, OTP screenshots.

Sending any of this to a cloud API is unacceptable. Open-weight Gemma 3 running locally via Ollama was the only viable choice:

Cloud APIs findbox (Gemma local)
Privacy Files leave your device Files never leave RAM
Offline Requires internet Works on an airplane
Cost Per-token for 1000s of files Free at any scale
Language English-optimized Hindi/Bengali natively

When Ollama isn't running, findbox falls back to a deterministic heuristics engine — so it never crashes.


Key Features

Zero-Config Auto-Discovery

No path configuration. It auto-finds ~/Downloads, ~/Desktop, ~/Pictures/Screenshots, ~/Documents, WhatsApp exports, iCloud Drive. Just run it.

Meaningful Renaming

IMG_4471.png → 2026-09-04_instagram-paneer-tikka_recipe.png
scan(3)_final_FINAL.pdf → 2026-10-12_electricity-bill_WBSEDCL.pdf
WhatsApp Image 2026-09-14.jpg → 2026-09-14_rent-chat-rahul_chats.jpg

Vague-Memory Search

Gemma parses your query into structured parameters (keywords + category + date range), then SQLite FTS5 BM25 finds the exact file. Search "paneer recipe september" → finds the Instagram screenshot from Sept 4.

Scan from the UI

The 🦥 Scan My Device Now button in the web UI triggers background scanning. No terminal needed.

Action Items Panel

Deadlines extracted from every file, color-coded: 🔴 red = due ≤7 days, 🟣 purple = future, ⚫ gray = past.


Architecture

sloth_box/
├── config.py     — AUTO_SCAN_DIRS (8 device locations)
├── security.py   — path-traversal, XSS disarm, magic-byte quarantine
├── extractor.py  — PDF/DOCX/image/text + fallback heuristics
├── ai.py         — local Ollama/Gemma client + vague query parser
├── organizer.py  — multi-folder intake, collision-safe rename, undo
├── db.py         — SQLite WAL + FTS5 + audit log
└── server.py     — WCAG 2.1 AA web UI (neobrutalism design)

Safety: dry-run by default, atomic undo, no overwrites, no deletes, localhost-only server.


The Payoff Meter

Minutes Saved = (Files Indexed × 1.5) + (Searches Avoided × 5.0)

On sample data: 15 minutes saved, 0 minutes spent. That's the sloth way.


Why Open Innovation Matters

This project wouldn't exist as a privacy-safe tool without open-weight models. The files it processes are genuinely sensitive. Gemma running locally means:

  1. Data never moves — inference in local RAM
  2. No internet required — fully offline
  3. No metered cost — 10,000 files, pay nothing
  4. Multilingual — handles Hindi/Bengali natively (WBSEDCL, Aadhaar, kharcha all work)

Try It

git clone https://github.com/chourasiavinit9-dev/findbox && cd findbox
python3 sloth_box.py run        # dry-run
python3 sloth_box.py run --apply  # apply
python3 sloth_box.py serve      # search UI at http://127.0.0.1:8765
python3 -m pytest tests/ -v     # 18 tests, 0.04s

🌐 Judge demo: chourasiavinit9-dev.github.io/findbox


🦥 Hacktoberfest 2026 Week 3 — Slow & Steady · International Sloth Day · Open-source · 100% local · Zero cloud

來源:DEV Community · dev.to