{"slug": "haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials", "title": "👻Haunt67Dumby: A 100% Offline, Vision-Aware Sticky Note That Tells Coding Tutorials from Brain-Rot", "summary": "A developer built Haunt67Dumby, a 100% offline desktop sticky-note app that uses small open-weight models (gemma3:270m, gemma4:e2b, qwen3-vl:2b and others) served through Ollama's local REST API to classify active windows and downscaled 512x288 screenshots as productive work, relevant tutorials, or off-task entertainment. The tool escalates distraction detection into a \"haunting\" alarm, uses perceptual diff caching with a sub-3% threshold to limit vision calls, and keeps all window titles and screenshots on-device, with the developer pitching a $19 one-time Pro license alongside a free open-source edition.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine](https://dev.to/challenges/hacktoberfest-week4-2026-10-26)*\n\n**Haunt67Dumby: A 100% Offline, Vision-Aware Sticky Note That Tells Coding Tutorials from Brain-Rot**\n\nAs developers, students, and freelancers, we all know the pain of opening YouTube to watch a 15-minute system design breakdown or documentation walkthrough, only to wake up 45 minutes later deep in a YouTube Shorts or gaming rabbit hole.\n\nYou tell yourself you're being productive. Your browser tells a different story.\n\nExisting productivity tools fail developers in two ways:\n\n**Haunt67Dumby** is an ultra-lightweight, 100% offline floating sticky-note accountability companion powered by local open-weight models (`gemma4:e2b`, `gemma4:e4b`, `qwen3-vl:2b`, `gemma3:1b`, and `gemma3:270m`) via **Ollama**.\n\nIt sits quietly in the corner of your screen like a minimalist `350x530` dark-amber sticky note.\n\nYou lock in what you are working on (e.g., *\"Fix Express auth middleware\"*), pick a sprint duration (`25m`), and choose your local Ollama model.\n\nIn the background, it observes your active window transitions and downscaled in-memory screenshots (`512x288`) to distinguish productive work and relevant tutorials from off-task entertainment.\n\nBut here's the Halloween twist.\n\n**Instead of another boring productivity alarm, what if your desktop started haunting you every time you wandered off?**\n\nHaunt67Dumby turns distraction detection into an escalating haunting:\n\nThe idea is simple: your computer already knows when you're procrastinating. It might as well make you regret it.\n\nAnd the best part? Everything runs locally. No screenshots, window titles, or private activity data ever need to leave your machine.\n\nDevelopers, indie hackers, and remote freelancers suffer from horrific subscription fatigue.\n\nBecause **Haunt67Dumby** runs 100% on the user's local hardware via Ollama, our marginal cloud inference cost is **$0.00**.\n\nThat allows us to sell the packaged Pro Desktop Edition as a **$19 One-Time Lifetime License** (zero recurring monthly fees, zero cloud telemetry) alongside a free self-built open-source edition.\n\n*(Tip: On the live landing page, you can interact with the Sticky Note preview directly, test the checkout flow, and explore the local architecture!)*\n\n**Stop blocking all of YouTube. Just block the brain-rot.**\n\nAn ultra-lightweight, 100% offline floating sticky-note accountability partner powered by tiny local open-weight models (`gemma3:270m` / `gemma2:2b`) via Ollama.\n\nTraditional website blockers are blunt hammers—they either block YouTube completely (breaking your workflow when you need a system design breakdown or documentation tutorial) or let you slip into a 45-minute Shorts rabbit hole. Meanwhile, cloud AI productivity trackers stream your private window titles and screen data to third-party servers while charging a monthly subscription.\n\n**FocusDumbyDumb** lives as a tiny, frameless sticky note in the corner of your screen:\n\n`gemma3:270m` uses <400MB RAM).\n**Haunt67Dumby** was engineered around small, fast open-weight models running locally through the **Ollama REST API** (`http://127.0.0.1:11434`), wrapped in a modular Python 3.11 desktop architecture (` CustomTkinter` + `Win32 ctypes` + `Pillow`).\n\nThrough live discovery via Ollama's `GET /api/tags`, the sticky note dynamically populates a dropdown so users can hot-swap models based on their hardware:\n\n`gemma4:e2b` & `gemma4:e4b` (Primary Multimodal Vision + Text Engine):`512x288` base64 screenshot payload via `POST /api/generate` in strict JSON mode.`gemma3:1b` (Ultra-Edge Text Mode):`qwen3-vl:2b` & `qwen3.5:2b`:\nBuilding a local AI watcher that actually feels good to use required solving several gnarly systems challenges:\n\n**👁️ Hybrid Vision + Perceptual Diff Caching (`<3%` Threshold):** Window titles alone can be deceptive (e.g., Chrome just saying `\"LinkedIn\"` when you're actually playing the LinkedIn Zip puzzle game, or watching a coding tutorial with a vague title). In Vision Mode, `window_watcher.py` grabs an in-memory screenshot, resizes it to `512x288` (JPEG quality 65), and computes a fast `16x9` grayscale perceptual signature. If the screen pixels change by `<3%` and the window title is identical (like reading static documentation), it hits the local session cache (`0ms` latency, `0` GPU calls).\n\n**⏱️ 30-Second Workspace Calibration & Multi-Window Breadcrumbs:** Real engineering tasks span multiple windows (VS Code + Terminal + Localhost Browser + Google OAuth popups). During the first 30 seconds of a sprint, Haunt67Dumby enters a **Workspace Calibration Phase**, automatically whitelisting the windows you touch into a trusted workspace (`0ms` instant switching), plus tracking a rolling 4-window breadcrumb trail so the model understands when a secondary login popup was spawned from your primary task.\n\n**👻 The Three-Stage Haunting (Two-Strike Grace Period & Escalating Interference):** Quick Alt-Tabbing never triggers a false alarm. If you stay on an unaligned distraction for 2 consecutive checks (`Strikes 2, 4, 6...`), the haunting escalates through your chosen interference level:\n\n`The Whisper` (Native Windows notification with custom auto-generated `.ico` icon).`The Warning` (Notification + system audio alert).`Possession` (Forces the sticky note to the front via Win32 `WS_EX_APPWINDOW`, flashes the border bright red, and physically shakes the widget horizontally on screen until you get back to work).\nThe goal isn't to block your distractions. It's to make the machine notice when you've broken your pact with it.\n\n`customtkinter`), screen-capture (` Pillow`), and Win32 (` ctypes.windll`) imports are lazily guarded so the app runs a deterministic offline CLI simulation (`python -m src.main --headless --demo`) and passes all unit tests inside a clean headless Linux Docker container in `0.75s`.\nThis is a product category that **literally cannot exist as a sustainable, trustworthy business on closed-source cloud APIs**:\n\nTo know whether you're watching a React tutorial or scrolling memes, an AI needs to see your window titles and screen context.\n\nSending screenshots of a developer's desktop every 10 seconds to a closed cloud API means leaking `.env` files, proprietary company source code, private messages, and banking tabs to external servers.\n\nRunning `gemma4:e2b` or `gemma3:270m` locally on `127.0.0.1` guarantees that screenshots never even touch the disk. They're evaluated in RAM/VRAM and immediately discarded.\n\nPolling a frontier vision API every 10 seconds across an 8-hour workday equals **2,880 multimodal API calls per user per day**.\n\nWith closed API pricing, a single heavy user would burn through $20–$40+ in token costs every single month, forcing a bloated recurring SaaS subscription.\n\nBy running open-weight Gemma models locally on the user's existing hardware, inference costs **$0.00 forever**.\n\nWhether a user has an 8GB VRAM GPU running `gemma4:e2b` in Vision Mode or an older laptop running `gemma3:270m` on CPU while studying on a train with zero Wi-Fi, the open-weight architecture adapts to them—and still includes a deterministic heuristic fallback if Ollama isn't running.\n\nThe ghost doesn't need the cloud to know when you're slacking off.\n\nI built and verified this project using an agent-driven workflow anchored by strict repository guardrails (`AGENTS.md`, `ARCHITECTURE.md`, `MISTAKES.md`, and a custom `focus67dumby-master` skill specification).\n\nInstead of letting coding agents hallucinate monolithic spaghetti code, the master skill enforced thread-safe `queue.Queue()` / `root.after()` UI marshaling, sub-60-word structured JSON prompts tailored for small models, Win32 foreground window detection, and an 8-point clean-Linux Docker rebuild gate verified by a 15-test `pytest` suite.\n\nI put **Haunt67Dumby** in front of its first real user—a college mate of mine who constantly battles the exact \"open YouTube for a lecture/tutorial, end up watching random videos for an hour\" loop during study and coding blocks.\n\n**What clicked immediately:** He loved the floating sticky-note form factor and the fact that it wasn't a heavy browser extension or a full-screen dashboard app. Seeing the widget distinguish between a legitimate task window and off-topic browsing—plus the **\"Popup Takeover + Shake\"** interference mode physically shaking the sticky note on screen when he drifted off-task—got him genuinely excited about using it for daily sprints.\n\n**Real-world friction we discovered during testing:** Early in our testing, we noticed that real workflows involve bouncing between multiple windows (like opening a secondary login popup or switching between a browser puzzle/task and a terminal), and that unchecking \"Always on Top\" on a frameless Windows widget could hide it behind the browser.\n\n**What we iterated on next:** That feedback directly inspired our **30-Second Workspace Calibration** feature (where the app automatically learns and trusts the tabs/windows you open in the first 30 seconds of a sprint) and our native Win32 taskbar persistence fix (`WS_EX_APPWINDOW`).\n\n**Would they pay?** For students and indie devs, monthly subscriptions are a dealbreaker, which validated positioning the packaged desktop installer as a low, one-time lifetime utility while keeping the core repo 100% open-source.\n\n**Best Use of Gemma:** **Haunt67Dumby** is built around Google's open-weight **Gemma** family (`gemma4:e2b` and `gemma4:e4b` for local multimodal vision-and-title classification, plus `gemma3:270m` and `gemma3:1b` for ultra-low-memory CPU edge classification) served locally via Ollama with strict JSON schema validation and `keep_alive` VRAM management.\n\n**Best Use of Entire:** Shared the full agent-driven engineering workflow, session history, and repository memory artifacts (`AGENTS.md`, `ARCHITECTURE.md`, `MISTAKES.md`, and `focusDumby67-skill.md`) that governed why each module, thread-safety queue, and headless fallback exists in the codebase.\n\n**Best Use of Render:** Deployed and hosted the **Haunt67Dumby** interactive product front-end, sticky-note state simulator, and license checkout portal on **Render** with automated GitHub continuous deployment.\n\n*The machine sees everything. Even the tabs you wish it hadn't.* 👻", "url": "https://wpnews.pro/news/haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials", "canonical_source": "https://dev.to/thrizzio/haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials-from-brain-rot-5ng", "published_at": "2026-10-31 15:47:18+00:00", "updated_at": "2026-10-31 15:52:12.232916+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "computer-vision", "large-language-models", "ai-agents"], "entities": ["Haunt67Dumby", "Ollama", "Gemma", "Qwen", "YouTube", "Python", "CustomTkinter"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials", "markdown": "https://wpnews.pro/news/haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials.md", "text": "https://wpnews.pro/news/haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials.txt", "jsonld": "https://wpnews.pro/news/haunt67dumby-a-100-offline-vision-aware-sticky-note-that-tells-coding-tutorials.jsonld"}}