{"slug": "screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render", "title": "ScreenStash: Turn Screenshots into Actionable Plans with Local Gemma 3 & Render", "summary": "A developer built ScreenStash, an open-source Tauri 2 desktop app for Windows and macOS that watches a screenshot folder, extracts text via OCR, and uses a local Gemma 3:4b model through Ollama to turn screenshots into structured tasks, events, receipts and references. The app stores results in a local SQLite database, restricts Ollama calls to loopback endpoints so screenshot text cannot be sent to a remote server, and offers an optional FastAPI cloud runtime on Render for users who opt into cloud processing. The MIT-licensed codebase pairs a React 19/TypeScript frontend with a Rust backend and ships via a GitHub Actions release pipeline.", "body_md": "We all do it: we hit `Win + Shift + S` or `Cmd + Shift + 4` a dozen times a day.\n\n`~/Pictures/Screenshots`` Screenshot (482).png`, and the tasks or meetings you captured are long forgotten.\n`.pyw`) detects new screenshots with zero user intervention and triggers a floating OS toast notification.`Show in Folder`).\n`✦ AI: Semantic concept match (expense: \"receipt\") · Direct match in title` explaining exactly why the AI selected it.\n---\n## Code\nScreenStash is a downloadable Tauri desktop application for Windows and macOS. It watches a user-selected screenshot folder, extracts text locally, and stores organized results in a local SQLite database.\n\nDownload the `.exe` or `.dmg` from the landing page or GitHub Releases. The distributed application does not require Python or a source checkout.\n\nScreenStash accepts only loopback Ollama endpoints (`localhost`, `127.0.0.1`, or `::1`) so screenshot text cannot be sent to a remote Ollama server by configuration.\n\nThe React/Tauri UI lives in `desktop/`; Python is packaged only as the processing sidecar.\n\n```\ncd desktop\nnpm ci\n```\n\n…\nThe codebase is 100% open-source under the MIT license, structured into:\n\n`desktop/`: Tauri 2 desktop shell, React 19, TypeScript, and custom CSS design system.`desktop/src/aiFilter.ts`: Dual-tier semantic intent engine and Ollama JSON inference client.`desktop/src/Calendar.tsx`: Dynamic 7-day monthly calendar and temporal date extractor.`desktop/src-tauri/`: Rust backend implementing native IPC, asset protocols, file deletion, and OS shell commands.`cloud_service/`: FastAPI cloud runtime deployed on Render.`.github/workflows/`: Automated GitHub Actions release pipeline building Windows MSI and NSIS packages.\nScreenStash follows a privacy-first, layered architecture that transforms raw screenshots into searchable, actionable information.\n\n**01 → Screenshot Capture**\n\n`Win + Shift + S`.\n**02 → Duplicate Detection**\n\n`SHA-256` hash to identify duplicate screenshots.\n**03 → Text Extraction**\n\n**04 → AI Processing**\n\nExtracted text is processed through a flexible, multi-tier AI pipeline:\n\n| 💻 Local AI | ☁️ Cloud AI | \n|---|---|\n| **Gemma 3:4b + Ollama** | **Render + FastAPI** | \n| Runs inference locally using structured JSON output. | Provides an alternative for users who opt for cloud processing. | \n| Keeps inference on-device. | Uses the hosted cloud runtime. | \n\n**05 → Local Data Storage**\n\n**06 → Desktop Experience**\n\nPowered by **Tauri 2 + React**, ScreenStash turns processed screenshots into an interactive workspace:\n\nWe chose **Gemma 3:4b** as our flagship on-device model. Using Ollama's structured JSON format, we pass the OCR extracted text into Gemma with strict schema constraints to reliably extract:\n\n`Task`, `Event`, `Receipt`, `Reference`)` meeting`, `expense`, `urgent`, `task`, `doc`).`✦ AI Filter`), queries local Ollama or Render Cloud with candidate items in strict JSON mode.`evaluateNeedsAttention()` to score urgency tokens (`evaluateSavedForLater()` to detect reference documentation and expense archives.\n### 3. Native Desktop WebView via Tauri 2 & Rust\nRather than packaging a bloated 250MB Electron binary, ScreenStash is built on Tauri 2:`convertFileSrc`) safely bridge local filesystem images into the webview without CSP violations.`explorer.exe /select, <path>` to reveal the exact file in Windows Explorer with a single click.\nScreenshots are among the most intimate and sensitive data artifacts on any computer:\n\nScreenStash was designed, implemented, refactored, and tested with iterative pair-programming assistance:\n\n`Decisions.mc`` Flow.md``tech.md`\nBefore ScreenStash:\n\n`Downloads`.` https://screenstash-cloudapi.onrender.com`), a containerized FastAPI service with health checking, CORS management, and fallback execution.`/api/generate`) locally, parsing raw OCR screenshots into structured titles, summaries, todo checklists, and calendar dates with zero telemetry.\n### Partner Categories:`.github/workflows/desktop-release.yml`).` v*`).\n*Built with passion for Hacktoberfest 2026. Try it out, star the repo, and stop letting your screenshots go to waste!*", "url": "https://wpnews.pro/news/screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render", "canonical_source": "https://dev.to/knight0916/screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render-5f27", "published_at": "2026-10-25 21:31:01+00:00", "updated_at": "2026-10-25 21:43:09.363491+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "ai-products", "developer-tools", "artificial-intelligence"], "entities": ["ScreenStash", "Ollama", "Gemma 3", "Tauri 2", "Render", "FastAPI", "GitHub Actions", "React"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render", "markdown": "https://wpnews.pro/news/screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render.md", "text": "https://wpnews.pro/news/screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render.txt", "jsonld": "https://wpnews.pro/news/screenstash-turn-screenshots-into-actionable-plans-with-local-gemma-3-render.jsonld"}}