🦥 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
🐳 Docker Ready: docker compose up --build
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 Final Web App Look
1. Homepage & The Payoff Meter
2. Vague Memory Search (AI-Parsed Query + Instant Filter)
3. Action Items Deadlines & Device Scanner
The Build Session
I built the entire thing with Antigravity (Gemini coding agent) in one session:
The Lazy Workflow
# Run this once before bed (or click 'Scan My Device' in the UI) 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.
🐳 Zero-Install: Run With Docker
Don't have Python or local dependencies configured? Run with Docker Compose:
git clone https://github.com/chourasiavinit9-dev/findbox && cd findbox docker compose up --build Or plain Docker:
docker build -t findbox . docker run -p 8765:8765 \ -v ~/Downloads:/inbox/Downloads \ -v ~/Desktop:/inbox/Desktop \ -v ~/SlothBox:/home/sloth/SlothBox \ findbox Open http://localhost:8765 — your files, organized, indexed, and searchable.
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:
| Feature | Closed 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, and 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. Includes a dedicated ✕ clear button to immediately wipe filters.
Scan from the UI
The 🦥 Scan My Device Now button in the web UI triggers background scanning with live visual feedback. 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
$$\text{Minutes Saved} = (\text{Files Indexed} \times 1.5) + (\text{Searches Avoided} \times 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:
- Data never moves — inference in local RAM
- No internet required — fully offline
- No metered cost — 10,000 files, pay nothing
- 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 - 🐙 GitHub Repository: chourasiavinit9-dev/findbox
- 🌐 Judge Interactive Demo: chourasiavinit9-dev.github.io/findbox
🦥 Hacktoberfest 2026 Week 3 — Slow & Steady · International Sloth Day · Open-source · 100% local · Zero cloud


