<?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: Tanishka Khanapurkar</title>
    <description>The latest articles on DEV Community by Tanishka Khanapurkar (@tanishka0745).</description>
    <link>https://dev.to/tanishka0745</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%2F4184368%2F96bb89fb-7a07-4bbd-8e8a-1bca5675d6d1.png</url>
      <title>DEV Community: Tanishka Khanapurkar</title>
      <link>https://dev.to/tanishka0745</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tanishka0745"/>
    <language>en</language>
    <item>
      <title>There’s a Snarky Dead Guy Trapped in My Laptop, and He Has Opinions About My Stack Trace!</title>
      <dc:creator>Tanishka Khanapurkar</dc:creator>
      <pubDate>Fri, 30 Oct 2026 12:49:59 +0000</pubDate>
      <link>https://dev.to/tanishka0745/theres-a-snarky-dead-guy-trapped-in-my-laptop-and-he-has-opinions-about-my-stack-trace-4m6k</link>
      <guid>https://dev.to/tanishka0745/theres-a-snarky-dead-guy-trapped-in-my-laptop-and-he-has-opinions-about-my-stack-trace-4m6k</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;Meet &lt;strong&gt;PolterPaste&lt;/strong&gt; — a desktop ghost that lives rent-free in your operating system's clipboard. &lt;/p&gt;

&lt;p&gt;Every time you copy a piece of text, code, or a messy stack trace, a snarky 19th-century aristocrat named &lt;strong&gt;Lord Bartholomew Blackwood&lt;/strong&gt; pops up on your screen to judge your choices with effortless Victorian sarcasm. No old dusty English—just sharp, witty roasts delivered via a semi-transparent, gothic floating UI.&lt;/p&gt;




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

&lt;p&gt;Suppose you make a small error and copy it to perhaps debug it:&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%2F8imauexgq7pcliqgarpd.jpeg" 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%2F8imauexgq7pcliqgarpd.jpeg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No one can escape Lord Bartholomew's perfect taunt:&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%2Ffotamco4iujvlgucl9sn.jpeg" 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%2Ffotamco4iujvlgucl9sn.jpeg" alt=" " width="649" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, if you try to reason out, he's got a witty replies up his sleeve! &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%2Fcddzoojyhphaqzhf1w6z.jpeg" 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%2Fcddzoojyhphaqzhf1w6z.jpeg" alt=" " width="799" height="469"&gt;&lt;/a&gt;&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%2Fq5gopzz49swjdxhufsxi.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%2Fq5gopzz49swjdxhufsxi.png" alt=" " width="638" height="201"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;Here is the core engine behind the haunting. You can check out the full repository on GitHub: [&lt;a href="https://github.com/tan-byte/lord_bartholomew/" rel="noopener noreferrer"&gt;https://github.com/tan-byte/lord_bartholomew/&lt;/a&gt;]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyperclip&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize the Gemini client with your API key
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_ACTUAL_API_KEY_HERE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_ghost_commentary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;copied_text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# The snarky Victorian persona prompt
&lt;/span&gt;    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are Lord Bartholomew Blackwood, a snarky Victorian ghost trapped &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;inside this laptop. You speak with crisp, effortless aristocratic &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sarcasm—sharp, witty English that cuts deep. Look at what the mortal &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;just copied and give a 1-to-2 sentence biting, theatrical roast of their &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;code or life choices. Keep it punchy and utterly unimpressed. Text copied: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;copied_text&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'"&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# The crucial AI interaction point using the official Google GenAI SDK
&lt;/span&gt;        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma-2-9b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;contents&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The ghost stares in silence.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The spirit&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s connection to the cloud severed: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;PolterPaste brings together three simple layers to create the illusion of a haunted machine:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The Clipboard Watcher: Built using pyperclip running in a lightweight background while loop that polls clipboard changes every 1.5 seconds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Intelligence Layer: Powered by the official google-genai SDK (gemini-3.8-flash), which transforms raw, boring copied text into personalized theatrical roasts using structured system instructions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Gothic UI: A custom, borderless, semi-transparent floating window built with Python's native tkinter featuring dark styling (#0d0d0d), a scrollbar for longer rants, and a click-to-dismiss behavior so it stays until you acknowledge your digital sins.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Building lightweight desktop agents like this highlights why accessible, open-developer tooling is so powerful. Being able to plug a cutting-edge cloud model directly into local system utilities like the clipboard with just a few lines of Python opens up endless possibilities for creative, whimsical, and borderline unhinged developer tools that completely change how we interact with our operating systems!&lt;/p&gt;

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

&lt;p&gt;Best use of Gemma&lt;br&gt;
Ghost in the Machine&lt;/p&gt;

&lt;p&gt;P.S: The best response so far:&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%2Fouemc3wh01vmr2op8i4d.jpeg" 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%2Fouemc3wh01vmr2op8i4d.jpeg" alt=" " width="549" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>A buddy that helps you before procrastination gets you.</title>
      <dc:creator>Tanishka Khanapurkar</dc:creator>
      <pubDate>Sat, 24 Oct 2026 18:34:56 +0000</pubDate>
      <link>https://dev.to/tanishka0745/a-buddy-that-helps-you-before-procrastination-gets-you-2noj</link>
      <guid>https://dev.to/tanishka0745/a-buddy-that-helps-you-before-procrastination-gets-you-2noj</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;SlothGuard is an ambient local agent that quietly watches your screen and only speaks up when you appear stuck.&lt;br&gt;
Most AI tools force you to break focus: select text, switch windows, write a prompt, and wait. &lt;br&gt;
SlothGuard flips that. It runs in the background, takes low-resolution screenshots every few seconds, and detects when the screen has barely changed for a while (you’re staring at the same error, the same docs, or the same failing test). When that happens, it asks a local open-weight model for one short, calm tip and speaks it through local text-to-speech. Then it goes silent again.&lt;br&gt;
It exists so developers (especially the ones coding late at night) can stay a little lazier. You don’t have to notice you’re stuck. You don’t have to decide to ask for help. The agent notices the stagnation and offers a gentle nudge only when it might actually be useful.&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%2Fwcjytfn9thk3lu2fbx0f.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%2Fwcjytfn9thk3lu2fbx0f.png" alt=" " width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; https://github.com/tan-byte/slothguard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;SlothGuard was built entirely around local, open-source AI. Rather than utilizing a closed API, every component was picked with privacy, offline capability, and customizability in mind. &lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Tool(s) Used&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Screen Capture&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;mss&lt;/code&gt; + &lt;code&gt;Pillow&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Fast, cross-platform, and low-resolution captures to minimize CPU usage.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stagnation Detection&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;scikit-image&lt;/code&gt; (SSIM)&lt;/td&gt;
&lt;td&gt;Compares perceptual similarity between grayscale, downscaled frames to detect when the screen has stayed nearly identical.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local Inference&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; with &lt;code&gt;moondream&lt;/code&gt; (preferred) or &lt;code&gt;gemma2:2b&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Generates a short, context-aware tip based off of the "stuck" signal. Vision capable models can utilize a cropped screenshot for better context.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text-to-Speech&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/rhasspy/piper" rel="noopener noreferrer"&gt;Piper TTS&lt;/a&gt; (&lt;code&gt;en_US-lessac-medium&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Completely offline, neural TTS to audibly deliver the tip.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-Screen Overlay&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;tkinter&lt;/code&gt;, &lt;code&gt;ctypes&lt;/code&gt;, and Windows MessageBox fallbacks&lt;/td&gt;
&lt;td&gt;A non-blocking, always-on-top popup to display the tip alongside audio for better visibility.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orchestration&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Python 3.10+&lt;/code&gt;, &lt;code&gt;PyYAML&lt;/code&gt;, &lt;code&gt;NumPy&lt;/code&gt;, &lt;code&gt;Requests&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Config loading, timing, cooldowns, and API calls to the local Ollama instance.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Architecture &amp;amp; Implementation Details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Heuristic First&lt;/strong&gt;: The detection logic is entirely local. SSIM is ran against downscaled, grayscale frames, only triggering an intervention if similarity is above the threshold for a configurable amount of time (~90 seconds by default).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model-Centric Tips&lt;/strong&gt;: The heuristic only answers "Has this screen changed?". The open-weight model is responsible for answering "What should I say?". A constrained system prompt is fed to Ollama alongside an optional screenshot, forcing it to output one short, calm, and non-judgemental tip.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-Blocking Design&lt;/strong&gt;: Model generation, TTS, and overlays all run asynchronously or in their own processes, allowing the capture loop to resume without stalling. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilient Fallbacks&lt;/strong&gt;: If Piper isn't installed, it will gracefully print to console. If the overlay fails to initialize, it will fall back to a system message box or a highly visible console output, ensuring the tip is always delivered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully Configurable&lt;/strong&gt;: All timings, thresholds, models, and cooldown ranges are exposed through &lt;code&gt;config.yaml&lt;/code&gt;, allowing for easy tuning between "real use" and "demo" modes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cooldown System&lt;/strong&gt;: After each intervention, a randomized cooldown (5-8 minutes by default) is applied to prevent nagging, embodying the "only when useful" philosophy. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The open-weight model isn't an optional add on for this project, it's the core. Without it, SlothGuard would only be a timer playing a static message. With it, a generic "stuck" signal is transformed into a contextually relevant nudge. &lt;/p&gt;

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

&lt;p&gt;A closed API version of SlothGuard would require sending screenshots containing my actual code, stack traces, terminal output, and debugging sessions to a third-party server. For something designed to run all day in the background, this was a non-negotiable privacy concern. &lt;/p&gt;

&lt;p&gt;Utilizing open-weight models locally allows for the following benefits: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;True Privacy&lt;/strong&gt;: All data is processed on-device. Screenshots, prompts, and tips never leave the machine. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Reliability&lt;/strong&gt;: It works anywhere. Trains, cafes with spotty Wi-Fi, or late nights with flaky internet are all a non-issue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Marginal Cost&lt;/strong&gt;: Once the model is pulled, SlothGuard can run for hours on end with no tokens, rate limits, or API fees to worry about.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freedom to Tinker&lt;/strong&gt;: Anyone can swap models, iterate on the system prompt, tweak detection thresholds, or extend functionality without permission, paywalls, or vendor lock-in. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This level of autonomy, privacy, and flexibility is only possible due to the open-weight ecosystem and the tools that allow for local inference. &lt;/p&gt;

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

&lt;p&gt;The value of SlothGuard isn't measured by saving minutes on a singular task, it's measured by removing the miniscule bits of friction that add up over the course of a day. &lt;/p&gt;

&lt;p&gt;Traditionally, to get help when stuck, you have to go through a loop of: noticing you're stuck, deciding it's worth breaking flow for, switching contexts to ask an AI, formulating a prompt, and returning to your work. &lt;/p&gt;

&lt;p&gt;SlothGuard cuts all of these steps out. By the time your brain registers that you've been circling the same bug for far too long, there's already a gentle, local tip being spoken to you. It's not about automating the solution, it's about automating the moment of asking for help. Less self-monitoring, less activation energy, and just a tiny nudge exactly when it's needed. That is the lazy payoff.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Local Invoice &amp; Receipt Sorter: A Privacy-First Side Hustle Tool</title>
      <dc:creator>Tanishka Khanapurkar</dc:creator>
      <pubDate>Thu, 15 Oct 2026 12:14:04 +0000</pubDate>
      <link>https://dev.to/tanishka0745/local-invoice-receipt-sorter-a-privacy-first-side-hustle-tool-m05</link>
      <guid>https://dev.to/tanishka0745/local-invoice-receipt-sorter-a-privacy-first-side-hustle-tool-m05</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;I built a local receipt and invoice parser designed specifically for freelancers and small business owners. It takes messy PDF invoices or snapshots of paper receipts, extracts structured data (vendor name, line items, totals, dates), and organizes them into neat CSV summaries—all running 100% locally on your machine. &lt;/p&gt;

&lt;p&gt;Freelancers would pay for this because it saves hours of tedious bookkeeping at tax season while guaranteeing that sensitive financial data and client details never get sent to third-party cloud APIs.&lt;/p&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Core local processing logic snippet&lt;/span&gt;
&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;InvoiceParser&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;InvoiceData&lt;/span&gt; &lt;span class="nf"&gt;parseLocally&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;File&lt;/span&gt; &lt;span class="n"&gt;invoiceFile&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Runs text extraction and local open-weight inference&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;rawText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;extractText&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;invoiceFile&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;LocalInferenceEngine&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;extractStructuredData&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rawText&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The project is built around open-source AI and local inference models. Instead of relying on closed commercial APIs, it leverages lightweight open-weight models running locally to parse documents securely. The backend handles file processing and data formatting locally without external network calls.&lt;/p&gt;

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

&lt;p&gt;Open innovation and open-weight models are vital for financial and administrative tools. Small businesses and freelancers handle sensitive client data, tax IDs, and proprietary pricing sheets. Relying on closed, hosted APIs means uploading confidential financial records to third-party servers. Local open-source models make complete data privacy, offline usability, and zero recurring API costs possible.&lt;/p&gt;

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

&lt;p&gt;I tested this out with a freelance peer who manages their own design contracts. They loved that they could dump all their monthly PDF invoices into a local folder and get an organized spreadsheet in seconds without worrying about cloud privacy risks.&lt;/p&gt;

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