<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bishesh Marasini</title>
    <description>The latest articles on DEV Community by Bishesh Marasini (@bisheshmarasini).</description>
    <link>https://dev.to/bisheshmarasini</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4204153%2F43bb40a1-ab37-472a-a858-864a9b5cce68.png</url>
      <title>DEV Community: Bishesh Marasini</title>
      <link>https://dev.to/bisheshmarasini</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bisheshmarasini"/>
    <language>en</language>
    <item>
      <title>I Built LazyFold to Clean Up My Messy Folder : Without Letting AI Touch My Files</title>
      <dc:creator>Bishesh Marasini</dc:creator>
      <pubDate>Sun, 25 Oct 2026 23:57:57 +0000</pubDate>
      <link>https://dev.to/bisheshmarasini/i-built-lazyfold-to-clean-up-my-messy-folder-without-letting-ai-touch-my-files-4f36</link>
      <guid>https://dev.to/bisheshmarasini/i-built-lazyfold-to-clean-up-my-messy-folder-without-letting-ai-touch-my-files-4f36</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the&lt;/em&gt; &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;&lt;em&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Have you ever opened your Downloads folder and wondered how it got &lt;em&gt;that messy&lt;/em&gt;? 😅&lt;/p&gt;

&lt;p&gt;Files everywhere. Documents with names like &lt;code&gt;document (3).pdf&lt;/code&gt;. Installers you downloaded months ago and completely forgot about. Random files you don't even remember downloading.&lt;/p&gt;

&lt;p&gt;You tell yourself, "I'll organize everything later." And somehow, &lt;em&gt;later never comes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Well, I think most of us have been there at some point.&lt;/p&gt;

&lt;p&gt;While scrolling through DEV, I came across the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 3: Slow and Steady&lt;/strong&gt;. As I went through the challenge, I noticed that they were suggesting a project idea around organizing messy Downloads folders.&lt;/p&gt;

&lt;p&gt;And honestly, it felt a little too relatable. 😂&lt;/p&gt;

&lt;p&gt;I thought, &lt;em&gt;"Wait, why not? Let's actually build something for this."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That was how I started working on &lt;strong&gt;LazyFold&lt;/strong&gt; — a desktop application that helps organize files, clean up unnecessary clutter, and automate routine tidying on Windows and macOS.&lt;/p&gt;

&lt;p&gt;But I didn't want to build just another file organizer. I wanted to explore a bigger question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we use AI to take care of boring, repetitive tasks without giving it unrestricted control over our personal files?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question became the foundation of LazyFold. And as I started building it, I realized that making files move is the easy part. Making sure they move to the &lt;em&gt;right place&lt;/em&gt;, safely and reversibly, is where things get interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/bilZY3Hu9cg" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/marasinibishesh" rel="noopener noreferrer"&gt;
        marasinibishesh
      &lt;/a&gt; / &lt;a href="https://github.com/marasinibishesh/Lazyfold" rel="noopener noreferrer"&gt;
        Lazyfold
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Windows &amp;amp; Mac app that tidies your Downloads folder and frees disk space, safely and locally. TabPFN predicts which moves you would accept; local Gemma 4 reads documents. By Bishesh Marasini.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Lazyfold&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A Windows and Mac app that tidies your messy Downloads folder and frees up disk space — safely, on your own PC.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Created by &lt;strong&gt;&lt;a href="https://github.com/marasinibishesh" rel="noopener noreferrer"&gt;Bishesh Marasini&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/marasinibishesh/Lazyfold/docs/screenshots/review.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fmarasinibishesh%2FLazyfold%2FHEAD%2Fdocs%2Fscreenshots%2Freview.png" alt="Lazyfold review screen: TabPFN lists the moves you'd probably change first (demo folder and demo history)"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organize&lt;/strong&gt; — sorts files into folders (Documents, Images, Installers…) and suggests a clear name for each file from what's inside it, for example &lt;code&gt;Presentation1.pptx&lt;/code&gt; → &lt;code&gt;Contoso Coffee Q3 2026 Sales Review.pptx&lt;/code&gt;. One click keeps or drops each name. Nothing moves until you approve, and every run can be undone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean up&lt;/strong&gt; — finds temporary files and caches you can safely remove (the safe version of Windows+R → &lt;code&gt;%temp%&lt;/code&gt;). Files go to the Recycle Bin (the Trash on a Mac) by default.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation&lt;/strong&gt; — tidy on a schedule, from the right-click menu (a Finder Quick Action on a Mac), or with Windows+R → &lt;code&gt;lazyfold&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private&lt;/strong&gt; — everything runs on your computer. No account, no upload.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Partner technology&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Lazyfold works like…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/marasinibishesh/Lazyfold" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Technical Features: What's Under the Hood?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Smart File Organization
&lt;/h3&gt;

&lt;p&gt;LazyFold scans a selected folder and proposes where files should go, using their actual file types, keywords, dates, and download sources. It can also suggest meaningful names for files that have names like &lt;code&gt;document (3).pdf&lt;/code&gt; or &lt;code&gt;scan0001.pdf&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Local AI with Gemma 4
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 E2B&lt;/strong&gt;, running locally through Ollama, helps classify documents and suggest meaningful filenames. Its output follows a predefined JSON schema, and suggested names are checked against the document's contents. Files whose moves are influenced by Gemma always wait for user review.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs7z1skw3zyojll3ztmwy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs7z1skw3zyojll3ztmwy.png" alt=" " width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Personalized Predictions with TabPFN
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;TabPFN&lt;/strong&gt; learns from a user's review history to predict whether they would accept a proposed file move unchanged. It helps prioritize decisions that may need attention and can hold back uncertain moves from automatic tidying.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Automatic Tidying
&lt;/h3&gt;

&lt;p&gt;LazyFold can automatically handle proposed moves when the built-in rules are confident and TabPFN agrees. Moves that don't meet the requirements wait for review. TabPFN can restrict the automatic set, but it cannot authorize additional moves.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Safe File Operations and Undo
&lt;/h3&gt;

&lt;p&gt;Every operation is revalidated before execution. LazyFold prevents overwriting existing files and journals moves before carrying them out, helping recover interrupted runs. Organizing files doesn't delete them, and completed runs can be undone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyec8z8i7wt5om85wa4om.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyec8z8i7wt5om85wa4om.png" alt=" " width="799" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The interesting part of LazyFold wasn't just adding AI to a file organizer. It was figuring out how to make different components work together without compromising the safety of someone's personal files.&lt;/p&gt;

&lt;p&gt;I ended up building the core around three steps: &lt;strong&gt;propose, predict, and act or ask.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Core Idea: Propose, Predict, Act or Ask
&lt;/h3&gt;

&lt;p&gt;Instead of letting an AI model decide everything, I separated the responsibilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, LazyFold proposes.&lt;/strong&gt; A rule-based engine scans the selected folder and analyzes files using their actual file types, keywords, dates, and download sources. It prepares a plan showing where each file should go.&lt;/p&gt;

&lt;p&gt;For documents with meaningless names, such as &lt;code&gt;document (3).pdf&lt;/code&gt; or &lt;code&gt;scan0001.pdf&lt;/code&gt;, LazyFold can also use Gemma 4 E2B to help identify the document and suggest a more meaningful filename.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then, TabPFN predicts.&lt;/strong&gt; It looks at the proposed move and the user's previous review decisions to estimate the probability that the user would accept that move without changing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finally, LazyFold acts or asks.&lt;/strong&gt; Deterministic code decides what happens next. Automatic tidying only proceeds when the built-in rules are confident and TabPFN agrees. Otherwise, the file waits for the user to review it.&lt;/p&gt;

&lt;p&gt;This separation is important because neither model gets to authorize a file operation. The models provide information; the application enforces the rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Teaching LazyFold My Filing Habits with TabPFN
&lt;/h3&gt;

&lt;p&gt;One thing I quickly realized is that people don't organize files in the same way.&lt;/p&gt;

&lt;p&gt;I might want all my screenshots to stay exactly where they are, while someone else might prefer to move downloaded documents from a particular website into a dedicated folder. Hardcoding every possible preference would quickly become complicated.&lt;/p&gt;

&lt;p&gt;That's where &lt;strong&gt;TabPFN&lt;/strong&gt;, a pretrained tabular foundation model from Prior Labs, comes in.&lt;/p&gt;

&lt;p&gt;LazyFold maintains a local review history in &lt;code&gt;reviews.jsonl&lt;/code&gt;. Each reviewed move contributes information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File type, size, and age&lt;/li&gt;
&lt;li&gt;The website the file came from&lt;/li&gt;
&lt;li&gt;The folder LazyFold proposed&lt;/li&gt;
&lt;li&gt;The folder the user actually chose&lt;/li&gt;
&lt;li&gt;Whether the user accepted the proposal unchanged&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importantly, this table doesn't store filenames or file contents.&lt;/p&gt;

&lt;p&gt;TabPFN uses these examples to predict whether a future proposed move is likely to be accepted. It doesn't require a separate model-training pipeline for each user; it makes predictions using the small table of review history.&lt;/p&gt;

&lt;p&gt;The prediction has two main uses. First, it helps prioritize the files that deserve attention during manual review. Second, it can hold back proposed moves from automatic tidying when the predicted acceptance probability falls below a configurable threshold, set to 85% by default.&lt;/p&gt;

&lt;p&gt;TabPFN can make the automatic process more conservative, but it cannot add moves to the automatic set or silently change the user's review selections.&lt;/p&gt;

&lt;p&gt;I also added a &lt;strong&gt;Check now&lt;/strong&gt; feature so users can test the predictor against their own history. It trains on older review sessions and evaluates against newer, unseen sessions, comparing its results with a simple baseline that accepts every proposed move.&lt;/p&gt;

&lt;p&gt;That matters because a model shouldn't be considered useful just because it uses AI. It should demonstrate that it helps.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Using Gemma 4 to Understand Documents
&lt;/h3&gt;

&lt;p&gt;Rules work well for many files, but they have limitations. A &lt;code&gt;.pdf&lt;/code&gt; extension tells us the file format, not whether the document is an invoice, a receipt, a boarding pass, or something else.&lt;/p&gt;

&lt;p&gt;To improve document classification, I integrated &lt;strong&gt;Gemma 4 E2B&lt;/strong&gt;, running locally through Ollama.&lt;/p&gt;

&lt;p&gt;For supported documents, Gemma provides a category, a suggested filename, a confidence score, and a reason. Its response follows a predefined JSON schema, so the application expects a constrained structure rather than arbitrary instructions or file paths.&lt;/p&gt;

&lt;p&gt;I also added several safeguards:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the model returns an invalid response, LazyFold falls back to the rules-based classification.&lt;/li&gt;
&lt;li&gt;Suggested filenames must be grounded in words found in the document, reducing the risk of invented names or dates.&lt;/li&gt;
&lt;li&gt;Only files with meaningless names are eligible for automatic renaming suggestions.&lt;/li&gt;
&lt;li&gt;Any move influenced by Gemma must wait for user review rather than being carried out automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I tested this approach on a blind, held-out dataset of 77 files. In that evaluation, classification accuracy increased from &lt;strong&gt;80.5% with rules alone to 97.4% with rules and Gemma combined&lt;/strong&gt;. All eight trap files, including disguised executables and HTML files pretending to be PDFs, were left untouched by both approaches.&lt;/p&gt;

&lt;p&gt;These results apply to that particular test set, but they gave me a useful way to measure whether the additional model was actually helping.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Making File Operations Safe and Reversible
&lt;/h3&gt;

&lt;p&gt;This was the part I didn't want to rush.&lt;/p&gt;

&lt;p&gt;File organization sounds harmless until an application moves the wrong document, overwrites an existing file, or crashes halfway through a batch operation. That's why safety isn't something I left to the AI models.&lt;/p&gt;

&lt;p&gt;LazyFold validates each operation again when it is executed, checks that files haven't changed since the preview, and prevents existing files from being overwritten. It also writes a journal entry before each move so interrupted operations can be reconciled and recovered.&lt;/p&gt;

&lt;p&gt;During security testing, an independent reviewer agent identified a race condition in which a destination folder could be swapped for a junction between validation and the move. I fixed the issue by holding the relevant folders open without delete-sharing during the operation.&lt;/p&gt;

&lt;p&gt;In the attack test, the number of successful escapes dropped from &lt;strong&gt;30 out of 60 attempts to zero out of 60&lt;/strong&gt; after the fix.&lt;/p&gt;

&lt;p&gt;I also tested cases involving disguised executable files, manipulated plans, prompt injection, interrupted moves, and recovery. The project now has 547 tests on Windows, and the same test suite runs on macOS in CI.&lt;/p&gt;

&lt;p&gt;The goal wasn't to make a model promise that everything would be safe. It was to build safeguards into the code that actually handles the files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A Downloads folder can contain bank statements, invoices, CVs, and other personal documents. Uploading them to an external AI service just to organize them doesn't feel right to me.&lt;/p&gt;

&lt;p&gt;That's why LazyFold uses &lt;strong&gt;Gemma 4 and TabPFN locally&lt;/strong&gt;, keeping its AI-powered workflow on the user's computer. I can also test their performance: in a held-out set of 77 files, combining Gemma with rules improved classification accuracy from 80.5% to 97.4%.&lt;/p&gt;

&lt;p&gt;Open source matters just as much. LazyFold is MIT-licensed, so people can inspect its code and safety mechanisms instead of blindly trusting a black box.&lt;/p&gt;

&lt;p&gt;For me, open innovation means &lt;strong&gt;building with open models, measuring their real contributions, and giving users more control over their data.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Is LazyFold For?
&lt;/h2&gt;

&lt;p&gt;Do you use a computer or laptop? 💻 Are you a Windows user or a macOS user? And be honest… is your workspace or Downloads folder a mess? 😂&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The answer is simple: LazyFold is for you! 😇&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whether you're a student managing assignments, a professional handling documents, or someone tired of a cluttered Downloads folder, LazyFold helps you organize files, clean up clutter, and automate routine tidying while keeping you in control.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;The goal of LazyFold is simple: spend less time organizing files and more time doing something useful.&lt;/p&gt;

&lt;p&gt;On a test folder containing 77 files, one review and one click replaced &lt;strong&gt;69 file moves, 20 renames, and 18 new folders&lt;/strong&gt; that would otherwise require manual work.&lt;/p&gt;

&lt;p&gt;The storage cleanup feature also found &lt;strong&gt;6.3 GB (on my first test) of temporary and cache files&lt;/strong&gt; on PC, with 2.3 GB preselected as safe to remove.&lt;/p&gt;

&lt;p&gt;And with TabPFN, the goal is to make routine tidying even less hands-on by automatically handling only the moves that meet the safety rules and match the user's learned preferences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less repetitive work, fewer files to sort manually, and the confidence that changes can be undone.&lt;/strong&gt; That's the lazy payoff I wanted LazyFold to deliver.&lt;/p&gt;

&lt;h2&gt;
  
  
  How this can be helpful
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;LazyFold brings together open models, practical AI, and automated testing, aligning with three challenge categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of TabPFN:&lt;/strong&gt; I integrated TabPFN as a personalized act-or-ask gate. It learns from review history, helps prioritize files for review, and holds back moves the user is unlikely to accept.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Gemma 4 E2B runs locally through Ollama to classify documents and suggest meaningful filenames. In my 77-file held-out test, it helped improve classification accuracy from 80.5% to 97.4% when combined with the rules-based classifier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot (GitHub Actions):&lt;/strong&gt; GitHub Actions runs tests on Windows and macOS, builds and smoke-tests the installers, and publishes releases for tagged versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs:&lt;/strong&gt; Voiceover of Demo Video.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each category represents a different part of the project: making AI useful, keeping it local, and testing the application across platforms.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
