This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
LazyDesk is a local-first, privacy-respecting desktop application that scans messy folders (like your overflowing Downloads or cluttered Desktop), computes an intelligent category-based structure, and moves only the files you explicitly approve.
Most AI file tools expect you to hand over access to your private folders and upload documents to third-party cloud APIs. LazyDesk takes the "Slow and Steady" approach:
Your files never leave your disk: File contents are never uploaded to remote servers. When cloud AI is enabled, only file names and extensions are evaluated.
Review-First & Zero Overwrites: AI proposes moves; it never executes them in the dark. Every conflict is auto-renamed or skipped, never overwritten.
Instant 1-Click Undo: Every operation is logged in an ACID SQLite transaction. If you change your mind, hit Undo and your files return to their exact original locations safely.
Deterministic Fallback: For obvious files (.jpg, .mp4, .pdf), deterministic rule-matching works with 0 tokens and 0 latency. Open-weight AI is reserved for ambiguous filenames like tax_return_final_v2 or project_draft_october.
Zero Cost & Free Tiers: Fully functional with local open-weight models via Ollama (qwen2.5, llama3.2, gemma2), free hosted inference (Pollinations, Groq, OpenRouter, Google AI Studio), or in 100% offline rules-only mode.
Whoever has an unmanageable Downloads directory can finally sit back, be a little lazier, and let LazyDesk do the boring chores.
Demo
Live Hosted Demo: https://lazydesk-web.onrender.com
Code
github link : https://github.com/Nareshkumawat-star/lazy-desk
How I Built It
LazyDesk is engineered as a secure two-tier local system wrapped in a native desktop shell:
Electron Desktop Shell (Context Isolation, Sandbox, Native Picker)
│
├──► Next.js 15 UI (React, Tailwind CSS, Lucide Icons, TypeScript)
│ │ (Typed HTTP + Loopback + X-LazyDesk-Token Header)
│ ▼
└──► FastAPI Local Service (Python 3.12, 127.0.0.1:8765)
├── Categorization Engine (Rules + Open-Weight Model Registry)
├── Collision-Safe Operation Planner (shutil.move with validation)
├── SHA-256 Deduplication Scanner
└── SQLite Storage (Sessions, Operations, Embeddings, Rules)
- Open-Source AI Stack & Local Inference Local Inference via Ollama: Supports private on-device models such as qwen2.5:7b, llama3.2:3b, phi3:mini, and gemma2:2b. Semantic search embeddings use nomic-embed-text. Zero-Setup Free Cloud Inference: Defaults to Pollinations (gpt-oss-20b) without any API key or signup required, with optional adapters for Groq (Llama/Qwen), OpenRouter free open-weight tiers, and Hugging Face. Structured JSON Extraction with Pydantic: Model responses are treated as untrusted text. Outputs are parsed and validated strictly against defined categories to prevent prompt hallucinations or path injection.
- Defensive Filesystem Safety Symlinks are never traversed during scans or moves. Directory traversals (../) are actively blocked by strict boundary validators. Pre-move and pre-undo validation passes verify that source files still exist and target destinations are completely collision-safe before touching disk. ## Why Does Open Innovation Matter? When dealing with a user's personal desktop, privacy is paramount. A traditional proprietary tool demands subscriptions, ties you to proprietary cloud endpoints, and uploads your documents to black-box commercial APIs.
Open innovation made LazyDesk possible in ways closed APIs cannot:
True Local Privacy: Open-weight models (Qwen, Llama, Gemma) allow complex natural-language file interpretation to happen entirely inside the user's laptop RAM without sending a single byte outside.
No Paywalls or Vendor Lock-in: By decoupling the organization logic from proprietary APIs, anyone can run LazyDesk forever with zero operational costs.
Verifiable Auditability: Because the models, FastAPI backend, and Electron preload bridges are open-source, users and security researchers can verify that their personal files remain strictly on their hard drive.
Prize Categories
Best Use of Render: LazyDesk includes a production-ready, schema-validated render.yml Render Blueprint that provisions both the Python FastAPI service and the exported Next.js static front-end with automatic service token wiring, explicit CORS origin restrictions, and health check probes.
Best Use of Gemma: Supports local and hosted Gemma 2 (gemma2:2b) inference for efficient on-device categorization and lightweight CPU/GPU setups.
Team leader (username):nareshkumawatstar
Top comments (0)