<?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: Vaibhav Bharathula</title>
    <description>The latest articles on DEV Community by Vaibhav Bharathula (@vaibhav1819).</description>
    <link>https://dev.to/vaibhav1819</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%2F3779951%2Fc7764076-d564-4379-b35e-51b80c0dc1da.png</url>
      <title>DEV Community: Vaibhav Bharathula</title>
      <link>https://dev.to/vaibhav1819</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vaibhav1819"/>
    <language>en</language>
    <item>
      <title>How I Built RepoSéance: A Local-First AI Ghost Hunter That Resurrects Abandoned Codebases</title>
      <dc:creator>Vaibhav Bharathula</dc:creator>
      <pubDate>Sat, 31 Oct 2026 16:27:33 +0000</pubDate>
      <link>https://dev.to/vaibhav1819/how-i-built-reposeance-a-local-first-ai-ghost-hunter-that-resurrects-abandoned-codebases-20dh</link>
      <guid>https://dev.to/vaibhav1819/how-i-built-reposeance-a-local-first-ai-ghost-hunter-that-resurrects-abandoned-codebases-20dh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;Every developer knows the eerie feeling: you stumble across a dusty GitHub repository from 4 years ago that solved the exact esoteric problem or algorithmic challenge you are wrestling with today. &lt;/p&gt;

&lt;p&gt;You excitedly clone it, only to find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The sole maintainer vanished in 2022.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;README.md&lt;/code&gt; is a 3-line stub that says &lt;em&gt;"WIP, documentation coming soon."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Half the architecture relies on undocumented assumptions and buried &lt;code&gt;// TODO: fix race condition in worker loop&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Key dependencies are deprecated or completely broken.&lt;/li&gt;
&lt;li&gt;You have no idea what the entry point is, whether it ever worked, or if it's worth your time to resurrect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sending a proprietary or private codebase to cloud AI APIs poses massive confidentiality risks and burns expensive tokens. And what happens when you need to inspect code on an offline plane or in a high-security environment?&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;RepoSéance&lt;/strong&gt; to bring these ghost codebases back to life.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RepoSéance&lt;/strong&gt; is a local-first, privacy-respecting software archaeology companion. You provide a local directory path or upload a ZIP archive of any neglected project, and RepoSéance conducts a digital séance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Repository Archaeology:&lt;/strong&gt; Safely maps directory structures, scans dependencies, inspects local Git commit histories, and catalogs buried &lt;code&gt;TODO&lt;/code&gt;/&lt;code&gt;FIXME&lt;/code&gt; markers without executing a single line of untrusted code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Code Indexing &amp;amp; Bounded Evidence Retrieval:&lt;/strong&gt; Chunks source code, extracts semantic tokens, and builds an offline vector index using local embedding models (&lt;code&gt;nomic-embed-text&lt;/code&gt; / &lt;code&gt;bge-small-en&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured Project Autopsy:&lt;/strong&gt; Uses a locally running open-weight model (&lt;code&gt;Qwen2.5-Coder&lt;/code&gt; / &lt;code&gt;Qwen2.5-3B&lt;/code&gt; / &lt;code&gt;Gemma 2-2B&lt;/code&gt; via Ollama) to reconstruct the project's true purpose, identify architecture flows, highlight entry points, and distinguish &lt;strong&gt;verified facts&lt;/strong&gt; from &lt;strong&gt;AI hypotheses&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Ghost Chat:&lt;/strong&gt; A conversational assistant with a subtle haunted-archive persona that answers technical queries about the codebase, strictly backed by clickable citations referencing exact file paths and line ranges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actionable Revival Roadmap:&lt;/strong&gt; Automatically compiles an interactive triage checklist (bug fixes, dependency modernizations, documentation patches, missing tests) and exports a complete Markdown autopsy dossier.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Local Repository / ZIP ──&amp;gt; Safe Scanner &amp;amp; Secret Redactor ──&amp;gt; Deterministic AST &amp;amp; Git Parser
                                                                        │
                                ┌───────────────────────────────────────┴───────────────────────────────────────┐
                                ▼                                                                               ▼
             Local Embeddings (Nomic / BGE)                                                     Git History &amp;amp; TODO Extractor
                                │                                                                               │
                                ▼                                                                               │
                         Local Vector Index                                                                     │
                                │                                                                               │
                                └───────────────────────────────┬───────────────────────────────────────────────┘
                                                                ▼
                                                Evidence Retrieval &amp;amp; Chunk Citations
                                                                │
                                ┌───────────────────────────────┴───────────────────────────────┐
                                ▼                                                               ▼
                 Ollama Runtime (Qwen2.5 / Gemma 2)                              Offline Deterministic Autopsy Fallback
                                │                                                               │
                                └───────────────────────────────┬───────────────────────────────┘
                                                                ▼
                                            Digital Séance Dashboard &amp;amp; Ghost Chat
                                            - Project Autopsy &amp;amp; Architecture
                                            - Evidence-Cited Q&amp;amp;A
                                            - Prioritized Revival Roadmap
                                            - Exportable Markdown Dossier
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;RepoSéance embraces a futuristic, haunted-terminal aesthetic: sleek dark charcoal backgrounds, spectral violet (&lt;code&gt;#9d4edd&lt;/code&gt;) and muted cyan accents, glassmorphic cards, and crisp monospace typography. &lt;/p&gt;

&lt;p&gt;The application is organized into 5 focused modules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🕯️ &lt;strong&gt;The Séance Chamber (Landing &amp;amp; Import):&lt;/strong&gt; Instant local folder selection or ZIP dropzone, live model availability heartbeat, and zero-cloud privacy verification.&lt;/li&gt;
&lt;li&gt;📜 &lt;strong&gt;Project Autopsy:&lt;/strong&gt; Comprehensive architectural breakdown, primary entry points, dependency health check, and Git activity timelines.&lt;/li&gt;
&lt;li&gt;👻 &lt;strong&gt;Ghost Chat:&lt;/strong&gt; Technical Q&amp;amp;A with collapsible Evidence Cards showing exact source file paths and line number snippets (&lt;code&gt;src/core/router.py:L45-L78&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;🗺️ &lt;strong&gt;Revival Roadmap:&lt;/strong&gt; Prioritized triage tasks (Investigate First, Modernization, Missing Tests, Documentation) with interactive state toggling (Pending, In Progress, Resolved).&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;Exportable Dossier:&lt;/strong&gt; One-click Markdown export summarizing the full autopsy and action plan for team handoffs or GitHub issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1. Summoning the Codebase
&lt;/h3&gt;

&lt;p&gt;Select a local repository or drag in a ZIP archive. RepoSéance validates the path, respects &lt;code&gt;.gitignore&lt;/code&gt;, redacts detected credentials, and extracts Git commit timelines in seconds:&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%2Fmu61hdkd68edh0g3tpww.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%2Fmu61hdkd68edh0g3tpww.png" alt="RepoSéance Landing Page and Repository Summoning" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. The Project Autopsy &amp;amp; Architectural Map
&lt;/h3&gt;

&lt;p&gt;The local AI reconstructs high-level module relationships, flags undocumented entry points, and catalogs uncompleted &lt;code&gt;TODO&lt;/code&gt;s:&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%2F8u9s0p9o9d1evqvk26hf.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%2F8u9s0p9o9d1evqvk26hf.png" alt="Project Autopsy and Architecture Overview" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Ghost Chat with Verifiable Evidence Cards
&lt;/h3&gt;

&lt;p&gt;Ask technical questions about esoteric functions or forgotten data pipelines. The Ghost answers with technical rigor and explicit file citations:&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%2Fkoqug21xb52po16wwux6.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%2Fkoqug21xb52po16wwux6.png" alt="Ghost Chat with source line citations" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Interactive Revival Roadmap
&lt;/h3&gt;

&lt;p&gt;Filter by priority and track tasks as you bring the project back to life:&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%2F0hm8a6tkxonyhhmu9mkm.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%2F0hm8a6tkxonyhhmu9mkm.png" alt="Revival Roadmap and Task Tracking" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Running It Locally
&lt;/h3&gt;

&lt;p&gt;RepoSéance requires zero external API keys and runs completely on standard laptop hardware:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repository&lt;/span&gt;
git clone https://github.com/Vaibhav-1819/RepoS-ance.git
&lt;span class="nb"&gt;cd &lt;/span&gt;RepoS-ance

&lt;span class="c"&gt;# 2. Set up the Python backend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;backend
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="c"&gt;# Windows:&lt;/span&gt;
.&lt;span class="se"&gt;\v&lt;/span&gt;&lt;span class="nb"&gt;env&lt;/span&gt;&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
&lt;span class="c"&gt;# Linux/macOS:&lt;/span&gt;
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# 3. (Optional) Start Ollama for local LLM inference&lt;/span&gt;
ollama run qwen2.5-coder:7b
&lt;span class="c"&gt;# Or smaller models for lightweight laptops:&lt;/span&gt;
&lt;span class="c"&gt;# ollama run qwen2.5:3b or ollama run gemma2:2b&lt;/span&gt;

&lt;span class="c"&gt;# 4. Start the backend server&lt;/span&gt;
uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt; &lt;span class="nt"&gt;--port&lt;/span&gt; 8000

&lt;span class="c"&gt;# 5. In a new terminal, launch the frontend&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ../frontend
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Note: If Ollama is not running, RepoSéance automatically activates its built-in deterministic heuristic engine, providing complete structural autopsies, Git analyses, and TODO inventories without failing.&lt;/em&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/Vaibhav-1819" rel="noopener noreferrer"&gt;
        Vaibhav-1819
      &lt;/a&gt; / &lt;a href="https://github.com/Vaibhav-1819/RepoS-ance" rel="noopener noreferrer"&gt;
        RepoS-ance
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;The complete codebase is 100% open-source under the MIT license:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/RepoS-ance/blob/main/backend/scanner/" rel="noopener noreferrer"&gt;&lt;code&gt;backend/scanner/&lt;/code&gt;&lt;/a&gt;: Deterministic repository walker, directory tree generator, secret masker, and Git history analyzer.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/RepoS-ance/blob/main/backend/indexer/" rel="noopener noreferrer"&gt;&lt;code&gt;backend/indexer/&lt;/code&gt;&lt;/a&gt;: Syntax-aware code chunker, local embedding orchestrator, and vector retrieval storage.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/RepoS-ance/blob/main/backend/ai/" rel="noopener noreferrer"&gt;&lt;code&gt;backend/ai/&lt;/code&gt;&lt;/a&gt;: Ollama runtime client, ghost prompt contracts, structured autopsy schema, and deterministic heuristic fallback.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/RepoS-ance/blob/main/backend/main.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/main.py&lt;/code&gt;&lt;/a&gt;: FastAPI REST API delivering health checks, autopsy generation, evidence-backed chat, and report downloads.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/RepoS-ance/blob/main/frontend/" rel="noopener noreferrer"&gt;&lt;code&gt;frontend/&lt;/code&gt;&lt;/a&gt;: React + TypeScript dashboard with spectral visual theme, tabbed autopsy views, interactive roadmap cards, and Markdown export.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  1. The Open-Source AI Architecture
&lt;/h3&gt;

&lt;p&gt;Processing unfamiliar codebases with local open-weight models presents two major hurdles: &lt;strong&gt;context window limits&lt;/strong&gt; and &lt;strong&gt;hallucination risk&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Feeding 50,000 lines of raw code into a local 3B or 7B model causes memory thrashing, high latency, and severe hallucinations. RepoSéance overcomes this with a &lt;strong&gt;Bounded Evidence Pipeline&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Bouncer:&lt;/strong&gt; Before LLM inference, the scanner strips out binary assets, build artifacts (&lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;venv&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt;), and redacted environment files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structural Chunking:&lt;/strong&gt; Files are segmented into functional units (classes, functions, top-level definitions, README sections) preserving exact line numbers (&lt;code&gt;start_line&lt;/code&gt;, &lt;code&gt;end_line&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence-Limited Prompting:&lt;/strong&gt; Instead of entire files, the local model receives a compact 800-token evidence bundle consisting of the README abstract, primary entry points, key dependencies, and high-similarity code snippets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fact vs. Hypothesis Separation:&lt;/strong&gt; The system prompt explicitly enforces a strict boundary:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Verified Fact:&lt;/strong&gt; Direct quote or observed structural attribute (e.g., &lt;code&gt;Flask 1.1.2 defined in requirements.txt:L4&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference:&lt;/strong&gt; Logical deduction based on code flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hypothesis:&lt;/strong&gt; Speculation that requires developer testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2. Safety and Sandboxing
&lt;/h3&gt;

&lt;p&gt;Because RepoSéance is built to inspect untrusted, abandoned repositories, security is a non-negotiable prerequisite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Never Executes Code:&lt;/strong&gt; No build commands, package managers (&lt;code&gt;npm install&lt;/code&gt;, &lt;code&gt;pip install&lt;/code&gt;), or repository scripts are ever invoked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Path Traversal Protection:&lt;/strong&gt; Archive extraction strictly validates target paths to prevent directory traversal attacks (&lt;code&gt;../../evil.sh&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Injection Defense:&lt;/strong&gt; Source code and documentation excerpts are treated strictly as untrusted data containers, separated from system instructions with robust delimiters.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Open-source software powers the modern digital economy, but thousands of promising repositories are abandoned each year due to maintainer burnout, corporate shifts, or life changes. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Digital Preservation &amp;amp; Software Archaeology:&lt;/strong&gt; When code is left behind, the institutional knowledge of &lt;em&gt;why&lt;/em&gt; it was built that way disappears. RepoSéance ensures that any developer can unearth, comprehend, and revive forgotten software independently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Total Privacy for Proprietary Assets:&lt;/strong&gt; Companies frequently possess internal legacy repositories that have had no active maintainer for years. They cannot upload confidential IP or internal infrastructure code to cloud AI services. Local AI models running on &lt;code&gt;localhost&lt;/code&gt; make legacy code triage 100% compliant and private.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilience from Corporate API Churn:&lt;/strong&gt; Cloud AI models are frequently deprecated, price-hiked, or modified behind closed doors. With local open-weight weights (&lt;code&gt;Qwen2.5&lt;/code&gt;, &lt;code&gt;Gemma 2&lt;/code&gt;), your software archaeology workbench will continue working 10 years from now—even on an isolated machine with no internet connection.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My First "Resurrection" Test
&lt;/h2&gt;

&lt;p&gt;To put RepoSéance to the test, I summoned a 3-year-old abandoned Python CLI audio transcriber repository that had been archived on GitHub with the commit message &lt;em&gt;"pausing for now"&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What RepoSéance unearthed in under 20 seconds:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Identified Entry Point:&lt;/strong&gt; Spotted &lt;code&gt;cli.py&lt;/code&gt; as the true driver, despite the README claiming &lt;code&gt;main.py&lt;/code&gt; was the execution point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flagged Deprecated Dependency:&lt;/strong&gt; Detected an unpinned &lt;code&gt;pydantic&amp;lt;1.9&lt;/code&gt; requirement causing silent type conversion crashes on modern Python 3.11+.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uncovered Hidden WIP:&lt;/strong&gt; Found an incomplete multi-threaded chunking routine in &lt;code&gt;transcribe/stream.py:L89&lt;/code&gt; marked &lt;code&gt;# FIXME: buffer underrun when stream terminates abruptly&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generated Revival Checklist:&lt;/strong&gt; Provided a clean, 4-step modernization plan that allowed me to patch the dependencies, fix the buffer condition, and run the transcriber successfully.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Over to You: Let's Discuss in the Comments!
&lt;/h2&gt;

&lt;p&gt;I would love to hear your thoughts and experiences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What is the most promising abandoned open-source repository you've ever discovered that was simply too cryptic to revive?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Have you explored running local code-specific models (like &lt;code&gt;Qwen2.5-Coder&lt;/code&gt; or &lt;code&gt;DeepSeek-Coder&lt;/code&gt;) for offline developer tooling?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What features would help you most when inspecting unfamiliar codebases:&lt;/strong&gt; AST call-graph visualizers, automatic test generator suggestions, or Dockerfile generators?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find this project valuable, please give it a star on &lt;strong&gt;&lt;a href="https://github.com/Vaibhav-1819/RepoS-ance" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/strong&gt; and share your thoughts below! I'll be in the comments answering questions and discussing software archaeology.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Hacktoberfest Open-Source AI Challenge Week 4 — Ghost in the Machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Innovation Track:&lt;/strong&gt; Advancing local-first, privacy-preserving software archaeology with open-weight models and zero data leakage.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>How I Built SlothFlow: A Local-First AI File Organizer That Cleans Your Mess While You Relax</title>
      <dc:creator>Vaibhav Bharathula</dc:creator>
      <pubDate>Sun, 25 Oct 2026 16:26:41 +0000</pubDate>
      <link>https://dev.to/vaibhav1819/how-i-built-slothflow-a-local-first-ai-file-organizer-that-cleans-your-mess-while-you-relax-2ojo</link>
      <guid>https://dev.to/vaibhav1819/how-i-built-slothflow-a-local-first-ai-file-organizer-that-cleans-your-mess-while-you-relax-2ojo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;If you’ve ever opened your &lt;code&gt;Downloads&lt;/code&gt; or &lt;code&gt;Desktop&lt;/code&gt; folder and winced at the mountain of unorganized documents staring back at you—&lt;code&gt;doc1.pdf&lt;/code&gt;, &lt;code&gt;scan_003.pdf&lt;/code&gt;, &lt;code&gt;notes_final.txt&lt;/code&gt;, &lt;code&gt;download_482.md&lt;/code&gt;, and cryptic invoice numbers—you know the exact pain of digital chaos.&lt;/p&gt;

&lt;p&gt;Manually opening each document, skimming its contents, thinking of a descriptive filename, and dragging it into the right subfolder is tedious, repetitive, and draining work.&lt;/p&gt;

&lt;p&gt;Most cloud-based file organizers either require paying recurring monthly API subscriptions or, even worse, uploading your private tax filings, apartment leases, health records, and bank statements to third-party cloud servers. That is an unacceptable privacy hazard.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;SlothFlow&lt;/strong&gt; to solve this once and for all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothFlow&lt;/strong&gt; is a local-first web application powered by open-weight AI models (&lt;code&gt;Qwen2.5-1.5B&lt;/code&gt;, &lt;code&gt;Gemma 2-2B&lt;/code&gt;, or &lt;code&gt;Llama 3.2-1B&lt;/code&gt;) running on &lt;code&gt;localhost&lt;/code&gt; via Ollama. It inspects documents on your machine, determines their categorization, generates human-readable filenames, and safely organizes them into clean category folders—&lt;strong&gt;all while ensuring zero document bytes ever leave your laptop.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Disorganized Folder ──&amp;gt; Safe Text Extractor (PyMuPDF) ──&amp;gt; Bounded Content Snippet
                                                                    │
                            ┌───────────────────────────────────────┴───────────────────────────────────────┐
                            ▼                                                                               ▼
             Local Ollama (Qwen 2.5 / Gemma 2)                                              Offline Heuristic Engine
             Strict Structured JSON Response                                                 Pattern &amp;amp; Keyword Matcher
                            │                                                                               │
                            └───────────────────────────────────────┬───────────────────────────────────────┘
                                                                    ▼
                                                    Interactive Organization Plan
                                                    - Inline Rename &amp;amp; Approval
                                                    - Collision Avoidance Guard
                                                                    │
                                                                    ▼
                                                    Safe Atomic Move &amp;amp; SQLite Audit Log
                                                    (Instant 1-Click Safe Undo)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  The "Slow and Steady" Philosophy &amp;amp; Lazy Mode
&lt;/h3&gt;

&lt;p&gt;The challenge theme for Week 3 is &lt;strong&gt;"Slow and Steady"&lt;/strong&gt;—and who embodies that better than a sloth?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🦥 Lazy Mode (1-Click Auto-Pilot):&lt;/strong&gt; Select a folder and click &lt;strong&gt;"Organize My Files"&lt;/strong&gt;. SlothFlow automatically extracts text, classifies categories, resolves filename collisions, organizes your folder, and hands you a tidy summary report while you kick back and relax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔍 Step-by-Step Preview Mode:&lt;/strong&gt; For detail-oriented builders, you can review the proposed moves in an interactive table, rename files inline, adjust target categories, and toggle granular approvals before anything touches your filesystem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Safe Undo &amp;amp; Zero Overwrites:&lt;/strong&gt; We guarantee zero overwrites and zero file deletions. Every single move is logged in an on-device SQLite audit trail with an instant &lt;strong&gt;Safe Undo&lt;/strong&gt; button that verifies paths for conflicts before restoring.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;SlothFlow features a minimal dashboard styled in warm earth tones, glassmorphism cards, and a peaceful sloth identity:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Large Folder Drop &amp;amp; Pre-Packaged Demo Fixtures
&lt;/h3&gt;

&lt;p&gt;Choose any disorganized folder on your machine, or click &lt;strong&gt;"Load Demo Folder"&lt;/strong&gt; to test with the 18 realistic sample documents included directly in the repository (leases, balance sheets, discrete math homework, sprint backlogs, and cloud invoices):&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📂 D:\Projects\SlothFlow\demo_files
├── doc1.pdf               --&amp;gt; [Finance]    Quarterly_Financial_Performance_Q3_Balance_Sheet.pdf
├── notes_final.txt        --&amp;gt; [Education]  Java_Collections_Framework_and_Concurrency_Interview_Notes.txt
├── download_482.md        --&amp;gt; [Projects]   React_Architecture_and_State_Management_Implementation_Guide.md
├── scan_003.pdf           --&amp;gt; [Personal]   Residential_Tenancy_Agreement_and_Apartment_Lease_Contract.pdf
├── project_stuff.txt      --&amp;gt; [Projects]   SlothFlow_Sprint_Backlog_and_Product_Roadmap.txt
└── inv_9841.pdf           --&amp;gt; [Finance]    Cloud_Infrastructure_Monthly_Hosting_Invoice.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Interactive Organization Plan Preview
&lt;/h3&gt;

&lt;p&gt;The local open-weight model evaluates each document and returns a structured organization plan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Original Filename:&lt;/strong&gt; With icon badges for PDF, Markdown, JSON, and Text documents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suggested Filename:&lt;/strong&gt; Editable inline with live pencil action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category Badge:&lt;/strong&gt; Work (Blue), Education (Purple), Finance (Emerald), Personal (Rose), Projects (Amber), and Miscellaneous (Slate).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target Destination:&lt;/strong&gt; Shows planned subfolder (&lt;code&gt;/Finance/&lt;/code&gt;, &lt;code&gt;/Education/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence &amp;amp; Reasoning:&lt;/strong&gt; Real-time progress bar displaying model confidence and explanation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Safe Rollback &amp;amp; Audit Log
&lt;/h3&gt;

&lt;p&gt;If you ever change your mind, open the &lt;strong&gt;Audit Log&lt;/strong&gt; or click &lt;strong&gt;"Undo Organization"&lt;/strong&gt; on the completion screen. SlothFlow cross-checks file existence, verifies destination availability, and safely restores files back to their exact original names and paths.&lt;/p&gt;


&lt;h3&gt;
  
  
  Running It Yourself
&lt;/h3&gt;

&lt;p&gt;You don't need expensive GPU clusters. SlothFlow runs smoothly on standard developer laptops:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repository&lt;/span&gt;
git clone https://github.com/Vaibhav-1819/slothflow.git
&lt;span class="nb"&gt;cd &lt;/span&gt;slothflow

&lt;span class="c"&gt;# 2. Set up and start the FastAPI Backend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;backend
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python run.py

&lt;span class="c"&gt;# 3. Set up and launch the React Frontend (in a second terminal)&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ../frontend
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev

&lt;span class="c"&gt;# 4. (Recommended) Pull your favorite local open-weight model&lt;/span&gt;
ollama run qwen2.5:1.5b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Tip: If Ollama isn't installed yet, SlothFlow's built-in **Heuristic Fallback Engine&lt;/em&gt;* automatically engages so you can test the entire scanning, plan generation, and safe undo workflow right out of the box!*&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/Vaibhav-1819" rel="noopener noreferrer"&gt;
        Vaibhav-1819
      &lt;/a&gt; / &lt;a href="https://github.com/Vaibhav-1819/slothflow" rel="noopener noreferrer"&gt;
        slothflow
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;🦥 SlothFlow — Your Local AI File Organizer&lt;/h1&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Stop organizing. Start relaxing."&lt;/strong&gt;&lt;br&gt;
Built for the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 3: Slow and Steady&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/Vaibhav-1819/slothflow/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/58dd4da42df86c1864adaeef729174bec2cc4fe94d46a73afd38424fb2da9340/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d656d6572616c642e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow#privacy-first-architecture" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/bb6d6affa6d2c4e91a2455d5f39b07267eaf3c9f8f12e42dab8f2ee3251afefe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d4c6f63616c2d2d46697273742d626c75652e737667" alt="Platform: Local-First"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow#open-weight-ai-integration" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6ed6b91b554cdf00822da4a01594be0a691cebf0a618e1a7f403cc5b030e295e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f496e666572656e63652d4f6c6c616d612532304c6f63616c2d6f72616e67652e737667" alt="Inference: Ollama"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow#quickstart" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/17a74d6803ec6b79e0e41ca0637278e010e20b32399a05ef72c7ee119f83593d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31312b2d79656c6c6f772e737667" alt="Python: 3.11+"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow#quickstart" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ba3c159a0fd14b09005b75937b7f95f72b310fad55b0af7027dddb9cf95bfbc0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d6379616e2e737667" alt="React: 19"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📖 Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;People accumulate hundreds of disorganized files: messy PDFs (&lt;code&gt;scan_003.pdf&lt;/code&gt;), ambiguous meeting notes (&lt;code&gt;notes_final.txt&lt;/code&gt;), downloaded specs (&lt;code&gt;download_482.md&lt;/code&gt;), and raw receipts. Manually opening, reading, renaming, and filing these documents into neat folders is tedious and draining.&lt;/p&gt;
&lt;p&gt;Cloud-based AI organizers require uploading confidential documents, invoices, tax forms, and medical records to external corporate servers or paying monthly API fees.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SlothFlow is a local-first, privacy-respecting file organizer powered by open-weight AI models (Qwen 2.5, Gemma 2, Llama 3.2 via Ollama).&lt;/strong&gt; It reads documents on your laptop CPU/GPU, determines their classification, suggests clean descriptive filenames, and organizes them into curated folders—all while ensuring &lt;strong&gt;zero document bytes ever leave your machine.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;Disorganized Folder ──&amp;gt; Safe Text Extractor (PyMuPDF) ──&amp;gt; Bounded Content Snippet
                                                                    │&lt;/code&gt;&lt;/pre&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Vaibhav-1819/slothflow" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The complete project is open-source under the MIT license:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/backend/app/classifier.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/app/classifier.py&lt;/code&gt;&lt;/a&gt;: Local Ollama client prompting open-weight models for structured JSON output (&lt;code&gt;format: "json"&lt;/code&gt;), status caching, and heuristic fallback.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/backend/app/extractors.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/app/extractors.py&lt;/code&gt;&lt;/a&gt;: Local document text extractor using PyMuPDF (&lt;code&gt;pymupdf&lt;/code&gt;) for PDFs and multi-encoding decoders for text/markdown.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/backend/app/security.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/app/security.py&lt;/code&gt;&lt;/a&gt;: Path boundary validation (&lt;code&gt;is_path_within_base&lt;/code&gt;), filename sanitization, and collision-free auto-incrementing.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/backend/app/organizer.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/app/organizer.py&lt;/code&gt;&lt;/a&gt;: Plan generator and atomic filesystem executor.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/backend/app/undo.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/app/undo.py&lt;/code&gt;&lt;/a&gt;: Safe rollback engine verifying target availability before restoring.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/backend/app/db.py" rel="noopener noreferrer"&gt;&lt;code&gt;backend/app/db.py&lt;/code&gt;&lt;/a&gt;: SQLite audit logging and session persistence.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/slothflow/blob/main/frontend/src/App.tsx" rel="noopener noreferrer"&gt;&lt;code&gt;frontend/src/App.tsx&lt;/code&gt;&lt;/a&gt;: Main dashboard orchestrating state, inline editing, Lazy Mode, and undo modals.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  The Open-Source AI Architecture
&lt;/h3&gt;

&lt;p&gt;To make local file organization responsive and reliable on everyday hardware, I implemented four core architectural principles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Untrusted Content Isolation:&lt;/strong&gt;
Document contents are untrusted data. SlothFlow treats extracted document text strictly as passive data inside the prompt. We isolate the snippet in clear boundary tags so prompt injection instructions embedded inside a document are never executed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bounded In-Memory Extraction:&lt;/strong&gt;
Passing a 50-page PDF to a local 1.5B LLM will throttle token speed and inflate memory usage. SlothFlow extracts text via PyMuPDF and packages a clean, bounded 1,800-character snippet capturing the title, headers, and opening paragraphs—achieving sub-second classification latency per document.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Collision Prevention:&lt;/strong&gt;
AI models can suggest identical filenames for related documents (e.g. two AWS invoices). Our filesystem layer checks the target directory and active plan claims, auto-incrementing filenames (&lt;code&gt;_1&lt;/code&gt;, &lt;code&gt;_2&lt;/code&gt;) before applying changes so &lt;strong&gt;no file is ever overwritten.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sandboxed Directory Boundaries:&lt;/strong&gt;
All filesystem reads and moves enforce &lt;code&gt;validate_and_resolve_folder()&lt;/code&gt; and &lt;code&gt;is_path_within_base()&lt;/code&gt;. It is mathematically impossible for the application to touch or escape into files outside the user's selected directory.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Uncompromised Document Privacy:&lt;/strong&gt;
Personal files contain tax IDs, salaries, medical test results, and confidential code. Relying on centralized cloud AI requires handing over your private data. With open-weight models (&lt;code&gt;Qwen2.5&lt;/code&gt;, &lt;code&gt;Gemma 2&lt;/code&gt;, &lt;code&gt;Llama 3.2&lt;/code&gt;), your private documents stay completely on your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero API Cost &amp;amp; Unlimited Usage:&lt;/strong&gt;
Organizing 2,000 messy archive documents using commercial cloud APIs would cost dollars per batch. With open-weight AI on &lt;code&gt;localhost&lt;/code&gt;, you can organize thousands of documents for free without hitting rate limits or credit cards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilience &amp;amp; Offline Independence:&lt;/strong&gt;
SlothFlow functions in the woods, on a plane, or during network blackouts. Once the model is downloaded, you own your productivity pipeline.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Real-World Test Run
&lt;/h2&gt;

&lt;p&gt;To test SlothFlow against genuine edge cases, we built an included dataset of 18 messy files:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Original File&lt;/th&gt;
&lt;th&gt;Content Type&lt;/th&gt;
&lt;th&gt;SlothFlow Proposed Name&lt;/th&gt;
&lt;th&gt;Destination&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;doc1.pdf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Balance sheet&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Quarterly_Financial_Performance_Q3_Balance_Sheet.pdf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/Finance/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅ Moved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scan_003.pdf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apartment lease&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Residential_Tenancy_Agreement_Apartment_Lease.pdf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/Personal/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅ Moved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;notes_final.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Java notes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Java_Collections_Framework_Concurrency_Notes.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/Education/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅ Moved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;project_stuff.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sprint backlog&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SlothFlow_Sprint_Backlog_Product_Roadmap.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/Projects/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅ Moved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;empty_scratch.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Empty 0-byte file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;empty_scratch.txt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/Miscellaneous/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⏭️ Skipped gracefully&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Safe Undo Test:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
After applying all 18 moves, clicking &lt;strong&gt;"Undo Organization"&lt;/strong&gt; cleanly checked directory conflicts, moved all 18 files back into the root directory, deleted the now-empty category folders, and updated the SQLite audit trail to &lt;code&gt;undone&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Over to You: Let's Discuss in the Comments!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How messy is your &lt;code&gt;Downloads&lt;/code&gt; folder right now? How many hundreds (or thousands) of files are sitting there?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What open-weight model have you found best for structured JSON output on CPU (Qwen 2.5, Gemma 2, or Llama 3.2)?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Which features would you love next:&lt;/strong&gt; automatic deduplication, optical character recognition (OCR) for scanned receipts, or a CLI daemon mode?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Star the repo on &lt;strong&gt;&lt;a href="https://github.com/Vaibhav-1819/slothflow" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/strong&gt; and let me know your thoughts in the comments below! 🦥&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Hacktoberfest Open-Source AI Challenge Week 3 — Slow and Steady&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Innovation Track:&lt;/strong&gt; Local-first, privacy-guaranteed document processing and intelligent file reorganization using open-weight AI models.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>How I Built TraceLite AI: A Local-First Debugging Assistant That Saves You From Log Hell</title>
      <dc:creator>Vaibhav Bharathula</dc:creator>
      <pubDate>Sat, 17 Oct 2026 16:21:47 +0000</pubDate>
      <link>https://dev.to/vaibhav1819/how-i-built-tracelite-ai-a-local-first-debugging-assistant-that-saves-you-from-log-hell-2j18</link>
      <guid>https://dev.to/vaibhav1819/how-i-built-tracelite-ai-a-local-first-debugging-assistant-that-saves-you-from-log-hell-2j18</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;If you've ever stared at a 3,000-line terminal wall of raw logs after a midnight deployment crash, you know the exact pain I’m talking about. &lt;/p&gt;

&lt;p&gt;You scroll frantically, trying to figure out which line is the actual root cause and which 200 lines are just cascading warning noise. Most small teams and indie devs I know don't have $300/month to drop on enterprise observability suites like Datadog or Dynatrace. And even if you do, sending proprietary server logs containing user IDs and database queries to external cloud AI APIs is a massive privacy risk.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;TraceLite AI&lt;/strong&gt; to solve this.&lt;/p&gt;

&lt;p&gt;It is a lightweight, local-first debugging companion. You paste in an unreadable stack trace or upload a raw &lt;code&gt;.log&lt;/code&gt; file, and TraceLite:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Redacts secrets instantly&lt;/strong&gt; (stripping out auth headers, OpenAI keys, and database passwords before anything touches memory).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministically clusters the noise&lt;/strong&gt; (grouping repeated error templates and isolating the actual failure point).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runs a local open-weight AI model (&lt;code&gt;Qwen2.5-0.5B&lt;/code&gt;)&lt;/strong&gt; via Ollama right on your laptop CPU to explain &lt;em&gt;why&lt;/em&gt; it crashed and generate an actionable fix checklist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exports a clean Markdown report&lt;/strong&gt; that you can drop directly into a GitHub issue or pull request.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Raw Logs ──&amp;gt; Secret Masker ──&amp;gt; Deterministic Parser ──&amp;gt; Bounded Evidence Package
                                                                │
                            ┌───────────────────────────────────┴───────────────────────────────────┐
                            ▼                                                                       ▼
             Ollama Runtime (Qwen2.5-0.5B)                                          Offline Heuristic Fallback
                            │                                                                       │
                            └───────────────────────────────────┬───────────────────────────────────┘
                                                                ▼
                                                    Evidence-First Investigation
                                                    &amp;amp; Markdown Report Export
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Who would pay for this? (The Side Hustle Thesis)
&lt;/h3&gt;

&lt;p&gt;I designed TraceLite around an &lt;strong&gt;open-core model&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% Free &amp;amp; Open Source Core:&lt;/strong&gt; The local CLI and standalone Streamlit web app will always remain free. Solo builders and CS students shouldn't have to pay to debug their side projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted Team Convenience Layer ($12–$19/month per team):&lt;/strong&gt; Small agencies and startups don't want to pass raw logs around Slack. The paid tier will offer:

&lt;ul&gt;
&lt;li&gt;A shared team investigation inbox with privacy-scrubbed crash histories.&lt;/li&gt;
&lt;li&gt;One-click GitHub &amp;amp; Linear integrations that convert a triage report into an assigned bug ticket.&lt;/li&gt;
&lt;li&gt;A GitHub Actions CI/CD bot that automatically runs TraceLite on failed test logs and posts a human explanation on the pull request.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;TraceLite AI features a modern, responsive web application styled with &lt;strong&gt;Space Grotesk typography&lt;/strong&gt;, glassmorphic card elements, a floating top Navbar, and a persistent Footer with 5 dedicated sections:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔍 Log Investigator:&lt;/strong&gt; Live triage console, one-click fixtures, stack trace isolation, and Markdown exporter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🚀 Architecture:&lt;/strong&gt; Interactive breakdown of the bounded evidence packaging pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📖 Docs &amp;amp; CLI:&lt;/strong&gt; Setup instructions, &lt;code&gt;demo_app.py&lt;/code&gt; walkthrough, and automated testing guide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💼 Side Hustle &amp;amp; Pricing:&lt;/strong&gt; Comparison between the free Community Core and the paid Team Convenience Layer ($15/seat/mo).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Privacy Engine:&lt;/strong&gt; Deep-dive into automated regex masking of API keys, tokens, and database passwords.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is how the end-to-end investigation workflow looks in practice:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Ingesting Logs &amp;amp; Isolating Errors
&lt;/h3&gt;

&lt;p&gt;Paste raw logs, upload a file, or click a sample fixture. TraceLite instantly runs secret masking, isolates the primary error in a clear red banner, and prepares the triage report:&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%2Fubehrfq22z2h91bgxcrr.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%2Fubehrfq22z2h91bgxcrr.png" alt="Raw log input and isolated error banner" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Deterministic Metrics &amp;amp; Stack Trace Extraction
&lt;/h3&gt;

&lt;p&gt;The engine parses multi-language stack traces (Python, Java JVM, Node.js, Go), computes line-by-line metrics, and reveals surrounding context lines:&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%2F5a1hc3u21e3z5gtsvrgj.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%2F5a1hc3u21e3z5gtsvrgj.png" alt="Deterministic metrics and stack trace extraction" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. AI Investigation &amp;amp; Diagnostic Checklist
&lt;/h3&gt;

&lt;p&gt;The local open-weight model (&lt;code&gt;Qwen2.5-0.5B&lt;/code&gt;) provides plain-language explanations, identifies plausible root causes, and generates an ordered diagnostic checklist:&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%2Fuqg5l2w6avuvz0h5pvq3.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%2Fuqg5l2w6avuvz0h5pvq3.png" alt="AI Investigation and diagnostic checklist" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Running It Yourself
&lt;/h3&gt;

&lt;p&gt;You don't need a GPU. It runs on any standard laptop:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repo&lt;/span&gt;
git clone https://github.com/Vaibhav-1819/tracelite_ai.git
&lt;span class="nb"&gt;cd &lt;/span&gt;tracelite_ai

&lt;span class="c"&gt;# 2. Install requirements&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# 3. (Optional) Run Ollama if you want the local LLM enabled&lt;/span&gt;
ollama run qwen2.5:0.5b

&lt;span class="c"&gt;# 4. Fire up the dashboard&lt;/span&gt;
streamlit run app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Tip: If you don't have Ollama installed, don't worry! TraceLite automatically activates its built-in heuristic engine so you get immediate diagnostic reports without installing anything extra.&lt;/em&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/Vaibhav-1819" rel="noopener noreferrer"&gt;
        Vaibhav-1819
      &lt;/a&gt; / &lt;a href="https://github.com/Vaibhav-1819/tracelite_ai" rel="noopener noreferrer"&gt;
        tracelite_ai
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;🔍 TraceLite AI&lt;/h1&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Lightweight, local-first debugging assistant that converts raw application logs and stack traces into structured, actionable investigation reports.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://python.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/13466c63b4f964f1bc47e46eabb6ea9ebff2cb7777cba82af790a55719bbbfda/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e31302532422d626c75652e737667" alt="Python Version"&gt;&lt;/a&gt;
&lt;a href="https://streamlit.io" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4cb081a559e4e2fc0155cc64eef2b5619a4add836f59c0fc931f6002e9315d70/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f55492d53747265616d6c69742d4646344234422e737667" alt="Streamlit"&gt;&lt;/a&gt;
&lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/148b95a07e5cd0c3dc2a37a152d97628273371a1fb51b4a20fa7ff347d33cc30/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f414925323052756e74696d652d4f6c6c616d612d626c61636b2e737667" alt="Ollama"&gt;&lt;/a&gt;
&lt;a href="https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/72af5b8b6adfb88a25c012b2aa37a0cb27c09d4da617bd9b75a670289fdea45a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e2d2d5765696768742532304d6f64656c2d5177656e322e352d2d302e35422d707572706c652e737667" alt="Model"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/cf3bdd89d7e8b0e158df2c01262e792f85ae39bded80b07dd75dba0d5694e348/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54657374732d3131253246313125323050617373696e672d627269676874677265656e2e737667" alt="Tests: Pytest"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;When applications crash, developers are often confronted with massive walls of logs: repeated exceptions, noise, obscure JVM traces, or unhandled Python errors. Traditional observability suites are complex, expensive, and require transmitting proprietary server logs to third-party clouds.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TraceLite AI&lt;/strong&gt; solves this with a &lt;strong&gt;zero-cost, local-first architecture&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Parsing &amp;amp; Extraction:&lt;/strong&gt; Fast Python regex engine parses multi-language stack traces (Python, Java, Node.js, Go), clusters recurring error signatures, normalizes dynamic variables, and builds event timelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Secret &amp;amp; Credential Redaction:&lt;/strong&gt; API keys (OpenAI, AWS, GitHub), bearer tokens, database passwords, and JWTs are automatically stripped before analysis or export.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight AI Investigation:&lt;/strong&gt; An ultra-lightweight open-weight LLM (&lt;code&gt;Qwen2.5-0.5B-Instruct&lt;/code&gt; via Ollama) provides plain-language explanations, root-cause hypotheses, and ordered debugging steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graceful Fallback:&lt;/strong&gt; Operates 100% offline with deterministic heuristics if Ollama is…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Vaibhav-1819/tracelite_ai" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The entire codebase is open-source under the MIT license:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai/blob/main/tracelite/parser.py" rel="noopener noreferrer"&gt;&lt;code&gt;tracelite/parser.py&lt;/code&gt;&lt;/a&gt;: The deterministic regex engine that parses Python, Java (JVM stack traces with &lt;code&gt;Caused by:&lt;/code&gt;), JavaScript/Node.js, and Go panics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai/blob/main/tracelite/masker.py" rel="noopener noreferrer"&gt;&lt;code&gt;tracelite/masker.py&lt;/code&gt;&lt;/a&gt;: The privacy filter catching AWS keys, Bearer tokens, DB credentials, and API secrets.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai/blob/main/tracelite/ai_client.py" rel="noopener noreferrer"&gt;&lt;code&gt;tracelite/ai_client.py&lt;/code&gt;&lt;/a&gt;: Ollama integration with bounded evidence packaging and deterministic offline fallback.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai/blob/main/app.py" rel="noopener noreferrer"&gt;&lt;code&gt;app.py&lt;/code&gt;&lt;/a&gt;: The Streamlit web interface styled with Space Grotesk typography and custom glassmorphism.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai/tree/main/tests" rel="noopener noreferrer"&gt;&lt;code&gt;tests/&lt;/code&gt;&lt;/a&gt;: 11 unit tests covering all parsers and failure edge cases (&lt;code&gt;pytest&lt;/code&gt; passes 100%).&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  The Open-Source AI Architecture
&lt;/h3&gt;

&lt;p&gt;I deliberately avoided heavyweight models. Instead, I paired a &lt;strong&gt;small open-weight language model (&lt;code&gt;Qwen2.5-0.5B-Instruct&lt;/code&gt;)&lt;/strong&gt; with a fast Python preprocessing pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Context Problem:&lt;/strong&gt; Small 0.5B models get confused if you throw 5,000 lines of raw logs at them. Their context windows choke, latency spikes, and they start hallucinating.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Bounded Evidence Solution:&lt;/strong&gt; I built a deterministic parser that acts as a bouncer. It strips out timestamps, masks sensitive tokens, clusters recurring messages (e.g. converting &lt;code&gt;POST /checkout 500&lt;/code&gt; repeated 40 times into a single line with count=40), and sends only a clean, 300-token evidence summary to the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict JSON Schema Guardrails:&lt;/strong&gt; The prompt forces the model to respond strictly in structured JSON, returning an explanation, plausible root causes, ordered diagnostic steps, and an uncertainty statement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graceful Fallback:&lt;/strong&gt; If Ollama is sleeping or not installed, TraceLite doesn't crash. It seamlessly routes through a deterministic heuristic rule engine that diagnoses common errors (&lt;code&gt;ZeroDivisionError&lt;/code&gt;, &lt;code&gt;NullPointerException&lt;/code&gt;, HTTP 429, HTTP 500) with honest attribution.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Building this project made one thing crystal clear: &lt;strong&gt;some problems should never be handed to closed cloud APIs.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Real Data Privacy:&lt;/strong&gt; Debugging server crashes means touching sensitive data: internal hostnames, database connection strings, and user payloads. Feeding raw production logs into a closed third-party cloud API is an unacceptable compliance risk for most developers. Open-weight models running on &lt;code&gt;localhost&lt;/code&gt; keep your data where it belongs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Marginal Cost:&lt;/strong&gt; If I had to pay $0.02 per OpenAI API call every time I tested a log parser against large logs, building this side hustle would have cost me money before getting my first user. With open-weight AI, I ran thousands of test parses for exactly $0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilience &amp;amp; Independence:&lt;/strong&gt; Closed APIs can change pricing, deprecate model versions, or suffer outages during your own production downtime. With &lt;code&gt;Qwen2.5&lt;/code&gt; and Ollama, my debugging tool works on a plane at 30,000 feet with zero Wi-Fi.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;To test TraceLite in the real world, I asked an indie developer friend to test-drive it on a tricky issue in their FastAPI application. Their container logs were drowning in sporadic 500 errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What TraceLite did in under 3 seconds:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stripped their PostgreSQL password from the raw connection string before displaying anything.&lt;/li&gt;
&lt;li&gt;Collapsed 42 repetitive connection failure lines into a single cluster.&lt;/li&gt;
&lt;li&gt;Pinpointed that their async connection pool was running out of open slots during checkout surges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Their reaction:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Usually when a server goes down, I'm grepping terminal windows with &lt;code&gt;tail -n 100&lt;/code&gt; and piecing together the timeline in my head. TraceLite pulled the exact culprit straight out of the noise and gave me a checklist I could follow right away. The fact that it runs locally without uploading my database errors to the cloud is a game changer."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Over to You: Let's Discuss in the Comments!
&lt;/h2&gt;

&lt;p&gt;I'd love to hear your thoughts and war stories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What is the nastiest, most cryptic stack trace you’ve had to troubleshoot recently?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Have you experimented with small open-weight models (like Qwen2.5 0.5B or Llama 3.2 1B) for local development tools?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What integration would you find most useful:&lt;/strong&gt; a VS Code extension, a GitHub Actions PR bot, or a CLI pipe (&lt;code&gt;my_cmd 2&amp;gt;&amp;amp;1 | tracelite&lt;/code&gt;)?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you found this project helpful or interesting, feel free to &lt;strong&gt;share it with your team, coworkers, or developer community&lt;/strong&gt;, and star the repo on &lt;strong&gt;&lt;a href="https://github.com/Vaibhav-1819/tracelite_ai" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/strong&gt;! Drop any questions or feedback below—I'll be hanging out in the comments to reply to every single one.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Hacktoberfest Open-Source AI Challenge Week 2 — Side Hustle&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Innovation Track:&lt;/strong&gt; Demonstrating practical, local-first inference using &lt;code&gt;Qwen2.5-0.5B-Instruct&lt;/code&gt; on everyday hardware with zero API fees.&lt;/li&gt;
&lt;/ul&gt;

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