<?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: Swayam Takkamore</title>
    <description>The latest articles on DEV Community by Swayam Takkamore (@swayamtakkamore).</description>
    <link>https://dev.to/swayamtakkamore</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%2F532133%2Fd8c623cb-6587-4d03-95a5-c82ecef23b36.png</url>
      <title>DEV Community: Swayam Takkamore</title>
      <link>https://dev.to/swayamtakkamore</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/swayamtakkamore"/>
    <language>en</language>
    <item>
      <title>SlothMind: Why Move Fast and Break Things When You Can Think Slow and Build Better?</title>
      <dc:creator>Swayam Takkamore</dc:creator>
      <pubDate>Sun, 25 Oct 2026 21:35:05 +0000</pubDate>
      <link>https://dev.to/swayamtakkamore/slothmind-why-move-fast-and-break-things-when-you-can-think-slow-and-build-better-bea</link>
      <guid>https://dev.to/swayamtakkamore/slothmind-why-move-fast-and-break-things-when-you-can-think-slow-and-build-better-bea</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;SlothMind is a private, local-first knowledge workspace designed around one central philosophy: &lt;strong&gt;sloths have life figured out - they conserve energy and avoid unnecessary movement.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As developers and researchers, we waste hours doing tedious knowledge work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hunting through fragmented folders for that one debugging fix we wrote months ago&lt;/li&gt;
&lt;li&gt;Manually reading wall-of-text notes to extract checklists and action items&lt;/li&gt;
&lt;li&gt;Summarizing meeting minutes, drafting PRDs, and rewriting specs&lt;/li&gt;
&lt;li&gt;Polishing grammar, drafting emails, and restructuring documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SlothMind does all of that heavy lifting so you don't have to.&lt;/strong&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%2Fp4hl38pq525e0r1sys3d.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%2Fp4hl38pq525e0r1sys3d.png" alt="Brainstorming" width="800" height="460"&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%2Fa25dfvtx1eg1bqs31i3s.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%2Fa25dfvtx1eg1bqs31i3s.png" alt="Still Brainstorming and append" width="800" height="460"&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%2Fqokrxx0aljyr62de433u.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%2Fqokrxx0aljyr62de433u.png" alt="Edit file" width="800" height="460"&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%2Fbjc3k5q0uw8uf6hflq6s.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%2Fbjc3k5q0uw8uf6hflq6s.png" alt="File Selection" width="800" height="460"&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%2F5h11w7yv2n6tl0prcgd7.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%2F5h11w7yv2n6tl0prcgd7.png" alt="AI Models" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Capabilities
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local-First Markdown Vault&lt;/strong&gt;: Notes live purely as standard &lt;code&gt;.md&lt;/code&gt; files on your disk. No accounts, no cloud databases, and zero vendor lock-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 3 Inline AI Assistant (&lt;code&gt;Ctrl+J&lt;/code&gt;)&lt;/strong&gt;: An inline assistant that recognizes intent automatically. It distinguishes casual conversation from explicit action commands (e.g. &lt;em&gt;Summarize&lt;/em&gt;, &lt;em&gt;Extract Action Items&lt;/em&gt;, &lt;em&gt;Brainstorm&lt;/em&gt;, &lt;em&gt;Fix Grammar&lt;/em&gt;, &lt;em&gt;Make Shorter/Longer&lt;/em&gt;, &lt;em&gt;Draft PRDs&lt;/em&gt;, &lt;em&gt;Meeting Agendas&lt;/em&gt;), with interactive &lt;code&gt;▶ Continue&lt;/code&gt; generation and multi-turn follow-ups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steam-Style AI Model Library&lt;/strong&gt;: Download, monitor, activate, and switch open-weight models with 1-click. Includes memory guards tailored for consumer GPUs (like an RTX 3050 4GB VRAM) and auto-restores the last used model on startup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source-Grounded Vault RAG with Honest Citations&lt;/strong&gt;: Ask your vault questions across all your notes. SlothMind extracts relevant passages and cites the exact source notes with clickable jump links. If the information isn't in your notes, it honestly abstains rather than inventing hallucinations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calm, Distraction-Free Editor&lt;/strong&gt;: Rich dynamic editing with &lt;code&gt;/&lt;/code&gt; commands (&lt;code&gt;/h1&lt;/code&gt;, &lt;code&gt;/h2&lt;/code&gt;, &lt;code&gt;/todo&lt;/code&gt;, &lt;code&gt;/callout&lt;/code&gt;, &lt;code&gt;/code&lt;/code&gt;, &lt;code&gt;/table&lt;/code&gt;), atomic debounced autosave, centered/full-width modes, and keyboard navigation.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Here is SlothMind running 100% locally with Google's Gemma 3:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Steam-Style Model Library
&lt;/h3&gt;

&lt;p&gt;Manage, download, and hot-swap open-weight models with live GPU VRAM tracking.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Instant Slash Commands &amp;amp; Inline Sloth AI
&lt;/h3&gt;

&lt;p&gt;Trigger actions or format blocks effortlessly with &lt;code&gt;/&lt;/code&gt; commands and &lt;code&gt;Ctrl+J&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Start to Run Locally
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/SwayamTakkamore/SlothMind.git
&lt;span class="nb"&gt;cd &lt;/span&gt;slothmind
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;Open &lt;a href="http://localhost:5173" rel="noopener noreferrer"&gt;http://localhost:5173&lt;/a&gt;, choose a vault folder, open the Model Library, and activate &lt;strong&gt;Gemma 3 1B Instruct&lt;/strong&gt;!&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;You can explore the source code on GitHub:&lt;/p&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/SwayamTakkamore" rel="noopener noreferrer"&gt;
        SwayamTakkamore
      &lt;/a&gt; / &lt;a href="https://github.com/SwayamTakkamore/SlothMind" rel="noopener noreferrer"&gt;
        SlothMind
      &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;SlothMind&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Your second brain. Your rules.&lt;/strong&gt;&lt;br&gt;
A local-first, privacy-focused Markdown knowledge workspace for developers and researchers.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What works in this build (Phases 0, 1, 2 &amp;amp; 3)&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vault management&lt;/strong&gt; – Open an existing folder or create a new vault. Recent vaults are remembered in &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe filesystem access&lt;/strong&gt; – All backend operations are scoped to the active vault. Path traversal, absolute paths, and symlink escapes are rejected. Writes use atomic rename (temp file + rename), renames/moves block silent overwrites, and deletes move items to a recoverable &lt;code&gt;.trash/&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File explorer&lt;/strong&gt; – Nested folders and &lt;code&gt;.md&lt;/code&gt; notes with expand/collapse, active-note highlighting, inline create/rename/delete actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markdown editor&lt;/strong&gt; – Source editing with a preview toggle, rendered with GitHub-flavored Markdown. UTF-8 content is preserved as-is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable autosave&lt;/strong&gt; – Debounced autosave (800ms), save on blur/note switch, manual &lt;code&gt;Ctrl+S&lt;/code&gt;/&lt;code&gt;Cmd+S&lt;/code&gt;, and visible status (&lt;code&gt;Saved&lt;/code&gt;, &lt;code&gt;Saving...&lt;/code&gt;, &lt;code&gt;Unsaved changes&lt;/code&gt;, &lt;code&gt;Save error&lt;/code&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SwayamTakkamore/SlothMind" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Architecture Overview
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React 18, TypeScript, Tailwind CSS, TipTap/ProseMirror with Markdown serialization, and Lucide icons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Node.js, Express, TypeScript, SQLite full-text search indexing, and a vault-scoped atomic filesystem engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Service&lt;/strong&gt;: Python FastAPI service utilizing PyTorch and Hugging Face &lt;code&gt;transformers&lt;/code&gt; with CUDA acceleration, streaming generation (&lt;code&gt;TextIteratorStreamer&lt;/code&gt;), and hardware-aware quantization.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;SlothMind is built from the ground up around &lt;strong&gt;Google's open-weight Gemma family&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemma 3 1B Instruct (&lt;code&gt;google/gemma-3-1b-it&lt;/code&gt;)&lt;/strong&gt;: Our flagship model for consumer hardware. With its ultra-compact memory footprint, it runs entirely in ~1.86 GB of GPU VRAM on an entry-level NVIDIA RTX 3050 Laptop GPU, leaving plenty of headroom for fast token generation and instant streaming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemma 3 270M Instruct (&lt;code&gt;google/gemma-3-270m-it&lt;/code&gt;)&lt;/strong&gt;: Featherlight 500 MB model that runs on virtually any machine with near-zero latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemma 3 4B Instruct (&lt;code&gt;google/gemma-3-4b-it&lt;/code&gt;) &amp;amp; Gemma 2 2B&lt;/strong&gt;: For deeper reasoning and multi-step synthesis, offloading layers between GPU VRAM and system RAM.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hardware-Aware Engineering
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Smart Intent Classification&lt;/strong&gt;: The frontend parser and backend prompt pipeline analyze prompt semantics to route requests to specialized template builders (&lt;code&gt;draft&lt;/code&gt;, &lt;code&gt;summarize&lt;/code&gt;, &lt;code&gt;action-items&lt;/code&gt;, &lt;code&gt;continue&lt;/code&gt;, &lt;code&gt;explain&lt;/code&gt;, &lt;code&gt;chat&lt;/code&gt;), ensuring small models produce well-structured Markdown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversation &amp;amp; Confirmation Safeguards&lt;/strong&gt;: Avoids unsolicited generation. If a user simply enters a greeting or casual question, the model responds conversationally and reconfirms before writing long drafts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session Auto-Restore&lt;/strong&gt;: Both backend disk state and browser storage remember the last active model, auto-loading it into VRAM on startup so there's zero friction when you open your computer to write.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Open-weight AI fundamentally changes what is possible for a personal knowledge base:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Privacy&lt;/strong&gt;: Your notes often contain confidential code, company architecture, personal ideas, and unreleased plans. Sending every keystroke to third-party cloud APIs is a non-starter. Open models mean your second brain never leaves your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Operating Costs&lt;/strong&gt;: No API tokens, no monthly subscriptions, and no surprise cloud bills. You download the model once and run it indefinitely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guaranteed Offline Autonomy&lt;/strong&gt;: Whether you are on a plane, riding a train, or experiencing an outage, SlothMind functions completely offline without an internet connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permanent Ownership&lt;/strong&gt;: Proprietary APIs can deprecate endpoints, change pricing, or alter system prompts overnight. Open innovation guarantees that the model you build your workflow around remains yours forever.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Built with agentic collaboration via Cursor(Claude Opus 5.5), Opencode Big Pickle, Gemini 3.8 Flash, T3 Code:&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Here is how much effort SlothMind saved this week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;0 minutes spent searching&lt;/strong&gt;: Instead of reading through 20 different meeting notes, a single question in &lt;strong&gt;Ask Your Vault&lt;/strong&gt; synthesized the answer with clickable source citations in under 3 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant meeting-to-action checklists&lt;/strong&gt;: Pasted raw transcripts, clicked &lt;strong&gt;Action Items&lt;/strong&gt;, and got a clean, checkable Markdown to-do list ready to execute.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated drafting&lt;/strong&gt;: Typed &lt;code&gt;/&lt;/code&gt; or pressed &lt;code&gt;Ctrl+J&lt;/code&gt;, selected a template (like &lt;em&gt;PRD&lt;/em&gt; or &lt;em&gt;Blog Post&lt;/em&gt;), and received an outline in seconds, followed by &lt;code&gt;▶ Continue&lt;/code&gt; to flesh out subsequent sections.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It turns hours of organizational chore work into single-click automations.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma ($200)
&lt;/h3&gt;

&lt;p&gt;SlothMind is built around Google's open-weight &lt;strong&gt;Gemma 3&lt;/strong&gt; models (&lt;code&gt;gemma-3-1b-it&lt;/code&gt;, &lt;code&gt;gemma-3-270m-it&lt;/code&gt;, and &lt;code&gt;gemma-3-4b-it&lt;/code&gt;). We engineered a dedicated PyTorch/Transformers inference engine with CUDA optimization, streaming responses, and an in-app Steam-style library that makes running Gemma locally effortless on everyday laptops and workstations.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>T3OS: The 100% Local, Air-Gapped AI Agent Operating System for Developers</title>
      <dc:creator>Swayam Takkamore</dc:creator>
      <pubDate>Mon, 19 Oct 2026 06:53:41 +0000</pubDate>
      <link>https://dev.to/swayamtakkamore/t3os-the-100-local-air-gapped-ai-agent-operating-system-for-developers-37dm</link>
      <guid>https://dev.to/swayamtakkamore/t3os-the-100-local-air-gapped-ai-agent-operating-system-for-developers-37dm</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;&lt;strong&gt;T3OS&lt;/strong&gt; is a 100% local, air-gapped developer agent operating system and terminal UI built from the ground up for open-weight models. It turns any developer's workstation into an autonomous software engineering assistant—capable of inspecting workspaces, diagnosing bugs, writing code, and executing terminal commands—without sending a single token or line of proprietary code to a cloud server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; ╭────────────────────────────────────────────────────────────────────────────────────────╮
 │ T3OS Agent                               Provider: [LOCAL] Model: google/gemma-3-4b-it │
 │ Session: 2026-10-18T21-00-36-995Z-tui-eed703                                           │
 ╰────────────────────────────────────────────────────────────────────────────────────────╯
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fwcadl11ujv3768diepzx.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%2Fwcadl11ujv3768diepzx.png" alt=" " width="798" height="172"&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%2Fjbkyqs36rsm8iukadpo0.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%2Fjbkyqs36rsm8iukadpo0.png" alt=" " width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Who Would Pay For It?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Freelance Developers &amp;amp; Boutique Software Consultancies:&lt;/strong&gt;
Engineers working on client projects under strict Non-Disclosure Agreements (NDAs). Uploading client source code into multi-tenant cloud AI models (like OpenAI, Claude, or Cursor) often violates client security and IP clauses. T3OS provides full agentic autonomy with a verifiable 0-byte egress guarantee.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fintech, Healthcare &amp;amp; Defense Contractors:&lt;/strong&gt;
Teams operating under strict SOC2, HIPAA, or air-gapped compliance requirements where external API calls are strictly firewalled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Indie Hackers &amp;amp; Solo Builders:&lt;/strong&gt;
Developers building on tight budgets who cannot afford $20–$200/month per-seat agent subscriptions or volatile token bills, but still need high-velocity agentic pair programming.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  The Problem It Solves
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Cloud API Tax:&lt;/strong&gt; Commercial coding agents charge steep recurring monthly fees or bill per token. A single heavy refactoring loop can consume dollars in minutes. T3OS runs at &lt;strong&gt;$0 marginal cost forever&lt;/strong&gt; on local hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Sovereignty &amp;amp; IP Leakage:&lt;/strong&gt; Cloud coding assistants send entire project files, dependency trees, and environment variables across the public internet. T3OS ensures your intellectual property never leaves your local silicon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Reliability:&lt;/strong&gt; Coding on a flight, in a coffee shop with spotty Wi-Fi, or in a secure air-gapped facility is impossible with cloud-tethered agents. T3OS works seamlessly completely offline.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;T3OS provides an interactive Ink-based Terminal User Interface (TUI), a fast one-shot CLI runner, and a lightweight local server.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Interactive Terminal UI (&lt;code&gt;t3os-tui&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Watch T3OS autonomously analyze a codebase, request explicit permission before executing bash commands, and stream responses locally via &lt;strong&gt;Google Gemma 3&lt;/strong&gt;:&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;# Launch the interactive terminal UI&lt;/span&gt;
node packages/tui/dist/bin.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; ╭────────────────────────────────────────────────────────────────────────────────────────╮
 │ T3OS Agent                               Provider: [LOCAL] Model: google/gemma-3-4b-it │
 │ Session: 2026-10-18T21-00-36-995Z-tui-eed703                                           │
 ╰────────────────────────────────────────────────────────────────────────────────────────╯

 ❯ inspect the failing test in packages/core and fix the bug
   ⚙ run_shell [audit test suite]

 ┌────────────────────────────────────────────────────────────────────────────────────────┐
 │ ⚠ Permission Required: run_shell (pnpm test packages/core/test/local.test.ts)         │
 │ [y] Allow once   [a] Always allow   [d] Allow session   [n] Deny                      │
 └────────────────────────────────────────────────────────────────────────────────────────┘

 &amp;gt; [y pressed]
   ✓ run_shell completed with exit code 0
   ⚙ read_file [packages/core/src/providers/local.ts]
   ⚙ write_file [packages/core/src/providers/local.ts]

   I diagnosed the issue: consecutive assistant turns were violating the Gemma chat 
   template requirements. I implemented `mergeConsecutiveTurns` to collapse multiple
   adjacent model messages into a clean alternating user/model dialogue. All 46 tests
   in packages/core are now passing!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Conversational Intent Gating
&lt;/h3&gt;

&lt;p&gt;Casual chitchat ("hi", "how are you?") is answered immediately without polluting the context with tool schemas or firing unnecessary tool calls. Workspace commands ("fix this error", "list directory contents") automatically engage the full tool harness.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Quickstart
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone and build T3OS from GitHub&lt;/span&gt;
git clone https://github.com/SwayamTakkamore/T3OS.git
&lt;span class="nb"&gt;cd &lt;/span&gt;T3OS
pnpm &lt;span class="nb"&gt;install
&lt;/span&gt;pnpm build

&lt;span class="c"&gt;# Run one-shot CLI command&lt;/span&gt;
node packages/cli/dist/bin.js run &lt;span class="s2"&gt;"summarize README.md"&lt;/span&gt;

&lt;span class="c"&gt;# Launch the interactive TUI&lt;/span&gt;
node packages/tui/dist/bin.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The complete source code is available on GitHub under the permissive MIT license:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/SwayamTakkamore/T3OS" rel="noopener noreferrer"&gt;https://github.com/SwayamTakkamore/T3OS&lt;/a&gt;&lt;/strong&gt;&lt;/p&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/SwayamTakkamore" rel="noopener noreferrer"&gt;
        SwayamTakkamore
      &lt;/a&gt; / &lt;a href="https://github.com/SwayamTakkamore/T3OS" rel="noopener noreferrer"&gt;
        T3OS
      &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;T3OS&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;An open-source, native desktop agent harness for open-weight models. Gemma-first,
backed by HuggingFace (hosted or local), with an Ink terminal UI and a Tauri
desktop shell over one shared core engine.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Requirements&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Node.js &amp;gt;= 20&lt;/li&gt;
&lt;li&gt;pnpm &amp;gt;= 9&lt;/li&gt;
&lt;li&gt;(optional) Rust + Tauri v2 toolchain for the desktop app&lt;/li&gt;
&lt;li&gt;(optional) a &lt;code&gt;secret-tool&lt;/code&gt;-compatible keyring for stored tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Install&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm install
pnpm build&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;export&lt;/span&gt; HF_TOKEN=hf_...          &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or: pnpm --filter @t3os/cli exec t3os auth set &amp;lt;token&amp;gt;&lt;/span&gt;
node packages/cli/dist/bin.js run &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;summarize README.md&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
node packages/tui/dist/bin.js    &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; interactive terminal UI&lt;/span&gt;
node packages/server/dist/bin.js &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; HTTP + WebSocket server on :8787&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Package binaries after &lt;code&gt;pnpm build&lt;/code&gt;:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Binary&lt;/th&gt;
&lt;th&gt;Package&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;&lt;code&gt;t3os&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@t3os/cli&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;one-shot runs and config/auth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t3os-tui&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@t3os/tui&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;interactive terminal UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t3os-serve&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@t3os/server&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;HTTP + WebSocket API&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The desktop shell (&lt;code&gt;@t3os/desktop&lt;/code&gt;) is a thin client of &lt;code&gt;t3os-serve&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;T3OS_API_URL=http://127.0.0.1:8787 pnpm --filter @t3os/desktop tauri dev&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Test&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm &lt;span class="pl-c1"&gt;test&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;License&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;MIT&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SwayamTakkamore/T3OS" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Monorepo Architecture
&lt;/h3&gt;

&lt;p&gt;T3OS is engineered as a clean TypeScript monorepo managed with &lt;code&gt;pnpm&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;t3os/
├── packages/
│   ├── core/         # The ETCSLV agent runtime, streaming ONNX engine, &amp;amp; safety harness
│   ├── tui/          # Interactive Ink/React terminal UI with drag-and-drop chips
│   ├── cli/          # Zero-config CLI binary with Unix pipe support
│   ├── server/       # Local HTTP &amp;amp; WebSocket API bridge (:8787)
│   └── desktop/      # Cross-platform Tauri v2 desktop shell
└── package.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clean Test Suite:&lt;/strong&gt; 36 test files with &lt;strong&gt;378 unit tests passing&lt;/strong&gt; across all packages (&lt;code&gt;pnpm test&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Third-Party Cloud Lock-In:&lt;/strong&gt; Pure open-weight model focus with no telemetry or tracking scripts.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;T3OS is built around modern open-source AI foundations, running quantized open weights directly on the host machine.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model Family:&lt;/strong&gt; &lt;strong&gt;Google Gemma 3&lt;/strong&gt; (&lt;code&gt;google/gemma-3-4b-it&lt;/code&gt;, &lt;code&gt;google/gemma-3-12b-it&lt;/code&gt;, &lt;code&gt;google/gemma-3-27b-it&lt;/code&gt;) and &lt;strong&gt;Gemma 4&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference Engine:&lt;/strong&gt; &lt;code&gt;@huggingface/transformers&lt;/code&gt; (Transformers.js) with &lt;strong&gt;ONNX Runtime (INT4 / Q4 quantization)&lt;/strong&gt;. Models download directly from HuggingFace on first use and execute locally using CPU or WebGPU acceleration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Token Streaming Scanner (&lt;code&gt;ToolCallScanner&lt;/code&gt;):&lt;/strong&gt; Open-weight models without native function-calling APIs emit structured XML or markdown tags (&lt;code&gt;&amp;lt;tool_call&amp;gt;...&lt;/code&gt;). T3OS implements an incremental streaming parser that detects tool invocations mid-stream, pausing generation to execute the tool safely.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The ETCSLV Formal Agent Harness
&lt;/h3&gt;

&lt;p&gt;T3OS formalizes agent execution as a mathematical 6-tuple $\mathcal{H} = (E, T, C, S, L, V)$:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;$E$ (Environment):&lt;/strong&gt; Sandboxed local environment with strict path boundaries and process isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$T$ (Tools):&lt;/strong&gt; Normalized workspace primitives (&lt;code&gt;read_file&lt;/code&gt;, &lt;code&gt;write_file&lt;/code&gt;, &lt;code&gt;run_shell&lt;/code&gt;) with smart alias resolution (&lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;sh&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt; $\to$ &lt;code&gt;run_shell&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$C$ (Context):&lt;/strong&gt; Sliding context window manager featuring &lt;code&gt;mergeConsecutiveTurns&lt;/code&gt; to guarantee strict alternating &lt;code&gt;user&lt;/code&gt;/&lt;code&gt;model&lt;/code&gt; message turns as required by the Gemma chat template.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$S$ (State):&lt;/strong&gt; Trajectory recording, session state persistence, and step telemetry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$L$ (Loop):&lt;/strong&gt; ReAct execution loop with intent-gated tool provisioning (&lt;code&gt;shouldProvideTools&lt;/code&gt;) to prevent hallucinated tool calls during conversational turns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$V$ (Verification):&lt;/strong&gt; Deterministic interactive safety engine (&lt;code&gt;[y] Allow once&lt;/code&gt;, &lt;code&gt;[a] Always allow&lt;/code&gt;, &lt;code&gt;[d] Allow session&lt;/code&gt;, &lt;code&gt;[n] Deny&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Open innovation is not just a philosophical preference—for T3OS, it is what makes the product technically and economically viable.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;True Privacy Without NDAs:&lt;/strong&gt; Closed AI APIs require trusting a third-party corporation with sensitive enterprise IP, customer records, and proprietary algorithms. Open-weight models run inside your physical hardware boundaries, guaranteeing absolute data sovereignty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictable Economics:&lt;/strong&gt; Closed API pricing is subject to unexpected changes, sudden rate limits, and per-token fees. Open-weight models eliminate ongoing inference costs, allowing solo developers and small agencies to offer AI-powered software services with predictable margins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full System Control:&lt;/strong&gt; With closed APIs, developers cannot alter the chat template, customize tokenization, or control low-level streaming behavior. Open innovation enabled us to adapt Gemma's chat template, implement custom XML token streaming scanners, and build an air-gapped permission system tailored exactly to developers' needs.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;This project was built collaboratively with AI coding agents like Cursor, Gemini 3.8 Flash and Opencode Big Pickle, running inside T3 Code. The iterative session involved designing the ETCSLV mathematical harness, implementing real-time streaming tool call parsers, solving terminal input blocking during permission prompts, and ensuring zero cloud dependencies.&lt;/p&gt;




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

&lt;p&gt;Our first user was &lt;strong&gt;Kritika&lt;/strong&gt;, a freelance penetration tester and smart-contract auditor. Kritika frequently works with pre-release, unannounced smart contracts and financial protocol codebases protected by heavy non-disclosure agreements.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I was spending $40/month on cloud coding tools that I had to disable every time I worked on private client repos to avoid violating NDAs. With T3OS running Gemma 3 4B locally on my laptop, I audited an entire smart contract repository completely offline on a flight with zero internet access. The permission prompt gives me peace of mind that no command runs without my say-so."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kritika feedback directly inspired our interactive &lt;code&gt;[y]/[a]/[d]/[n]&lt;/code&gt; permission prompt and drag-and-drop file attachment chips.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  🌟 Best Use of Gemma ($200 Featured Category)
&lt;/h3&gt;

&lt;p&gt;T3OS is built Gemma-first. We designed the core runtime specifically around &lt;strong&gt;Google Gemma 3&lt;/strong&gt; (&lt;code&gt;google/gemma-3-4b-it&lt;/code&gt;) and Gemma 4:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local ONNX INT4 Execution:&lt;/strong&gt; Running Gemma models locally via &lt;code&gt;@huggingface/transformers&lt;/code&gt; without external server dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma Chat Template Compliance:&lt;/strong&gt; Implemented &lt;code&gt;mergeConsecutiveTurns&lt;/code&gt; to enforce Gemma's strict turn alternation requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Tool-Calling Prompt Engineering:&lt;/strong&gt; Specially crafted system prompts and XML-based function calling schemes optimized for Gemma's reasoning capabilities.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Swayam Takkamore (&lt;a href="https://dev.to/swayamtakkamore"&gt;@swayamtakkamore&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>gemma</category>
    </item>
    <item>
      <title>Reality Checkpoint - The AI Game That Asks You to Put Your Phone Away</title>
      <dc:creator>Swayam Takkamore</dc:creator>
      <pubDate>Mon, 12 Oct 2026 02:38:16 +0000</pubDate>
      <link>https://dev.to/swayamtakkamore/reality-checkpoint-the-ai-game-that-asks-you-to-put-your-phone-away-1ob4</link>
      <guid>https://dev.to/swayamtakkamore/reality-checkpoint-the-ai-game-that-asks-you-to-put-your-phone-away-1ob4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Most modern apps and games treat human attention as oil to be drilled: infinite notification loops, engagement algorithms, red notification badges, and continuous screen gaze. Even outdoor and fitness games frequently double down on screen fixation, requiring players to stare into an augmented-reality viewfinder, check a real-time GPS map at street corners, or snap mandatory surveillance photos of every waypoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reality Checkpoint&lt;/strong&gt; flips the paradigm completely upside down:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The phone is the portal, not the destination.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Reality Checkpoint is an AI-powered, real-world adventure game that turns everyday physical surroundings into personalized quests. You spend 30 seconds choosing your available time window (5, 10, 15, or 30 minutes), select a sensory focus (optics/shadows, urban flora, soundscapes, micro-physics, or fleeting encounters), and receive a bespoke, grounded mission.&lt;/p&gt;

&lt;p&gt;Then, &lt;strong&gt;the screen goes dormant&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The app enters an ambient, low-power dormant mode with a subtle breathing ring and a quiet countdown. There are no feeds, no popups, and no ads. You put the phone in your pocket, step outside, and experience physical reality with your own senses. When your time window is up, an organic audio chime sounds via the Web Audio API. &lt;/p&gt;

&lt;p&gt;When you return, you describe what you noticed. A local open-weight AI model evaluates your reflection, rewards genuine sensory attention, poses Socratic follow-up questions, and files what you discovered into a persistent, evolving &lt;strong&gt;Field Journal&lt;/strong&gt; using &lt;strong&gt;Reality Memory™&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;[30s Setup] ──&amp;gt; [Bespoke Quest] ──&amp;gt; [Phone in Pocket / Screen Dormant] ──&amp;gt; [Return &amp;amp; Reflect] ──&amp;gt; [Reality Memory™ Compounds]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Who It Is For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Digital workers &amp;amp; developers&lt;/strong&gt; suffering from screen fatigue who need a tangible, rewarding reason to step away from their desk for 10 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Urban explorers &amp;amp; flâneurs&lt;/strong&gt; who want to rediscover familiar neighborhoods through fresh sensory lenses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mindfulness &amp;amp; curiosity seekers&lt;/strong&gt; who prefer playful exploration over structured meditation timers or invasive fitness trackers.&lt;/li&gt;
&lt;/ul&gt;


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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Deployed App (Vercel)&lt;/strong&gt;: &lt;a href="https://reality-checkpoint-mauve.vercel.app" rel="noopener noreferrer"&gt;reality-checkpoint-mauve.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/SwayamTakkamore/Reality-Checkpoint" rel="noopener noreferrer"&gt;github.com/SwayamTakkamore/Reality-Checkpoint&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Running Locally with Google Gemma 4 (Step-by-Step)
&lt;/h3&gt;

&lt;p&gt;Because true open-innovation outdoor gaming prioritizes personal privacy, zero cloud dependence, and zero metered API fees, the recommended way to experience the full AI engine with &lt;strong&gt;Google Gemma 4 (&lt;code&gt;google/gemma-4-E2B-it&lt;/code&gt;)&lt;/strong&gt; is running it locally on your computer:&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/SwayamTakkamore/Reality-Checkpoint.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Reality-Checkpoint

&lt;span class="c"&gt;# 2. Run the one-command launcher&lt;/span&gt;
./start.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;What the launcher handles automatically:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Verifies your Python 3.11+ environment and backend requirements (&lt;code&gt;fastapi&lt;/code&gt;, &lt;code&gt;transformers&lt;/code&gt;, &lt;code&gt;torch&lt;/code&gt;, &lt;code&gt;accelerate&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Loads &lt;strong&gt;Google Gemma 4 (&lt;code&gt;google/gemma-4-E2B-it&lt;/code&gt;)&lt;/strong&gt; natively through Hugging Face Transformers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware Adaptation&lt;/strong&gt;: Automatically checks for GPU acceleration (NVIDIA CUDA with &lt;code&gt;float16&lt;/code&gt;/&lt;code&gt;bfloat16&lt;/code&gt;) for rapid inference, and transparently falls back to CPU if a dedicated GPU is absent.&lt;/li&gt;
&lt;li&gt;Serves the prebuilt nature-friendly UI unified with the API at &lt;strong&gt;&lt;code&gt;http://localhost:8000&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Local Gameplay Walkthrough:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open the Portal&lt;/strong&gt;: Navigate to &lt;code&gt;http://localhost:8000&lt;/code&gt;. The minimal nature aesthetic greets you in warm parchment (&lt;code&gt;#fbfaf7&lt;/code&gt;), botanical pine and sage accents, and editorial &lt;em&gt;Newsreader&lt;/em&gt; serif typography (with an instant dark mode toggle).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select Parameters&lt;/strong&gt;: Choose a 10-minute budget with the theme &lt;em&gt;"The Architecture of Shadows"&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Receive Quest&lt;/strong&gt;: Gemma 4 generates &lt;em&gt;"The Long Shadow"&lt;/em&gt;, directing you to observe how sunlight and cast iron meet at a physical railing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dormant Mode&lt;/strong&gt;: The screen dims into a minimalist breathing timer with ambient Web Audio chime indicators. Put the phone in your pocket and step outside.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Return &amp;amp; Socratic Reflection&lt;/strong&gt;: You return and input your observation:
&amp;gt; &lt;em&gt;"I observed a jagged cast shadow from an iron balcony railing. The sunlight shifted by roughly two inches over ten minutes, softening along the penumbra as high clouds passed."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluation &amp;amp; Reality Memory™&lt;/strong&gt;: Gemma 4 evaluates observational depth on-device, awards XP, and records an episodic memory node (&lt;code&gt;Category: Light, Tags: [visual, kinetic]&lt;/code&gt;) into your persistent local Field Journal.&lt;/li&gt;
&lt;/ol&gt;


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

&lt;p&gt;The entire codebase is open source under the MIT License:&lt;/p&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/SwayamTakkamore" rel="noopener noreferrer"&gt;
        SwayamTakkamore
      &lt;/a&gt; / &lt;a href="https://github.com/SwayamTakkamore/Reality-Checkpoint" rel="noopener noreferrer"&gt;
        Reality-Checkpoint
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An AI-powered real-world adventure game running on Google Gemma 4 locally that turns ordinary surroundings into quests. Screen is dormant; reality is the game.
    &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;Reality Checkpoint&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The screen is a portal, not a destination.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI-powered real-world adventure game. You tell it how much time you have and what
you are in the mood for; it hands you a bespoke mission, you put the phone away and go
live it, and when you come back you describe what happened. A local open-weight model
reads your reflection, scores it, and files what you found into a growing narrative of
your own neighbourhood.&lt;/p&gt;
&lt;p&gt;Built for &lt;strong&gt;Hacktoberfest 2026 — Week 1: Touch Grass&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Every quest evaluation runs against a model on your own machine. No accounts, no API
keys, no telemetry. If the model is unavailable the app degrades to a deterministic
heuristic engine and keeps working.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The loop&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;Portal  →  30-second setup        time budget · theme · mood
        →  Bespoke mission        generated by a local model, safety-checked
        →  Dormant mode           countdown ring, chime when time&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/SwayamTakkamore/Reality-Checkpoint" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Project Architecture
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    Client["Responsive PWA / Web UI&amp;lt;br/&amp;gt;(React 18 + Tailwind + Web Audio)"]
    API["FastAPI Backend Engine&amp;lt;br/&amp;gt;(Python 3.11+)"]
    LLM["Local Open-Weight LLM&amp;lt;br/&amp;gt;(Hugging Face Transformers: Google Gemma 4)"]
    GPU["GPU Acceleration (CUDA)&amp;lt;br/&amp;gt;Auto-Fallback to CPU"]
    DB[("Local SQLite3 Database&amp;lt;br/&amp;gt;(WAL Mode: reality_checkpoint.db)")]
    Memory["Reality Memory™ Engine&amp;lt;br/&amp;gt;(Episodic Knowledge Graph)"]

    Client --&amp;gt;|1. Request Quest (Time, Focus)| API
    API --&amp;gt;|Fetch Past Memories| Memory
    Memory --&amp;gt;|Contextual Memories| DB
    API --&amp;gt;|Prompt + Memories| LLM
    LLM --&amp;gt; GPU
    LLM --&amp;gt;|Structured JSON Quest| API
    API --&amp;gt;|Render Mission &amp;amp; Dormant Mode| Client

    Client --&amp;gt;|2. Submit Reflection| API
    API --&amp;gt;|Evaluate Depth &amp;amp; Attention| LLM
    LLM --&amp;gt;|Feedback, XP, Extracted Memory| API
    API --&amp;gt;|Persist Observation| Memory
    API --&amp;gt;|Update Progress &amp;amp; Narrative Tree| DB
    API --&amp;gt;|Return Socratic Follow-up| Client&lt;/code&gt;&lt;/pre&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend (&lt;code&gt;frontend/&lt;/code&gt;)&lt;/strong&gt;: React 18, Tailwind CSS, Lucide icons, synthesized Web Audio chime, and Screen WakeLock API. Features a minimalist nature-friendly light mode default with smooth dark mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend (&lt;code&gt;backend/&lt;/code&gt;)&lt;/strong&gt;: FastAPI, Pydantic v2 schemas, SQLite3 persistence, and multi-layer safety guardrails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test Suite (&lt;code&gt;backend/test_backend.py&lt;/code&gt;)&lt;/strong&gt;: 37 automated tests passing in Pytest verifying schema resilience, safety enforcement, and progression mechanics.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Reality Checkpoint is built natively around &lt;strong&gt;Google's Gemma 4 (&lt;code&gt;google/gemma-4-E2B-it&lt;/code&gt;)&lt;/strong&gt; running locally on-device through &lt;strong&gt;Hugging Face Transformers&lt;/strong&gt; and PyTorch.&lt;/p&gt;

&lt;p&gt;Instead of treating AI as an open-ended chatbot, the engine uses Gemma 4 for structured, deterministic game mechanics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hardware-Adaptive Inference (GPU-First with Seamless CPU Fallback)&lt;/strong&gt;:&lt;br&gt;
The backend inspects available compute at startup. When CUDA is available, it leverages GPU acceleration (&lt;code&gt;device_map="auto"&lt;/code&gt;, &lt;code&gt;bfloat16&lt;/code&gt;/&lt;code&gt;float16&lt;/code&gt;). If running on machines without a dedicated GPU, or if GPU VRAM is constrained, the runtime automatically and transparently falls back to CPU execution with zero downtime or crashed requests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dynamic Quest Generation with Schema Enforcement&lt;/strong&gt;:&lt;br&gt;
Injects the player's past Reality Memories, time constraints, and narrative arc into a structured prompt, enforcing strict Pydantic JSON schemas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qualitative Reflection Evaluation &amp;amp; Socratic Probing&lt;/strong&gt;:&lt;br&gt;
Reads free-form text reflections, evaluates observational specificity, scores attention depth, extracts structured memory nodes, and poses an organic follow-up question.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deterministic Heuristic Floor&lt;/strong&gt;:&lt;br&gt;
If the model is cold or offline, the backend automatically falls back to an intelligent rule-based engine. The player is never stranded outside because an AI process stalled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-Tier Safety Guardrails (&lt;code&gt;backend/safety.py&lt;/code&gt;)&lt;/strong&gt;:&lt;br&gt;
Hardcoded regex and semantic filters enforce that generated quests never advise trespassing, private property access, hazardous terrain, touching unknown plants or animals, approaching strangers, or using phones near active traffic.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Absolute Privacy for Contemplative Reflections&lt;/strong&gt;:&lt;br&gt;
Personal observations about your neighborhood, daily walks, and quiet thoughts should never be ingested into proprietary training datasets or corporate cloud logs. Running Google Gemma 4 locally ensures your private reflections never leave your machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;True Offline Resilience (Nature Doesn't Have 5G)&lt;/strong&gt;:&lt;br&gt;
The entire point of "Touch Grass" is going outside. A hiking trail, state park, basement workshop, or remote shoreline often has zero cellular signal. Because the model, runtime, and SQLite database run locally on-device, Reality Checkpoint works completely offline.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zero Financial Metering&lt;/strong&gt;:&lt;br&gt;
Habit-forming outdoor exploration shouldn't incur metered API bills or monthly paywalls. Open-weight models like Gemma 4 make contemplative technology accessible to anyone with standard personal hardware.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;The complete architecture, PRD, and test harness were orchestrated and validated using T3 Code and DevRelay agent workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Harness &amp;amp; Agent&lt;/strong&gt;: T3 Code with &lt;code&gt;gemini-3.8-flash-high&lt;/code&gt; and &lt;code&gt;opencode big-pickle&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session Focus&lt;/strong&gt;: Ideation, PRD specification, local Hugging Face Transformers integration (&lt;code&gt;google/gemma-4-E2B-it&lt;/code&gt;), nature-friendly minimalist UI redesign, test suite verification (37/37 pytest passed), and deployment configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow &amp;amp; Logs&lt;/strong&gt;: Tracked across git commits and archived in the project documentation at &lt;a href="https://github.com/SwayamTakkamore/Reality-Checkpoint" rel="noopener noreferrer"&gt;&lt;code&gt;SwayamTakkamore/Reality-Checkpoint&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track&lt;/strong&gt;: &lt;strong&gt;Hacktoberfest Open-Source AI Challenge: Week 1 ("Touch Grass")&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partner Categories&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;: Integrates Google's &lt;strong&gt;Gemma 4 (&lt;code&gt;google/gemma-4-E2B-it&lt;/code&gt;)&lt;/strong&gt; locally via Hugging Face Transformers. Utilizes GPU-first execution with seamless CPU fallback, strict JSON schema parsing, and on-device private inference to generate real-world sensory quests and evaluate outdoor reflections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Entire / DevRelay&lt;/strong&gt;: Full agent orchestration, automated session documentation, and test-driven verification.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built My Friend Kritika a Project Mentor That Runs on Local Gemma</title>
      <dc:creator>Swayam Takkamore</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:57:13 +0000</pubDate>
      <link>https://dev.to/swayamtakkamore/i-built-my-friend-kritika-a-project-mentor-that-runs-on-local-gemma-2amc</link>
      <guid>https://dev.to/swayamtakkamore/i-built-my-friend-kritika-a-project-mentor-that-runs-on-local-gemma-2amc</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🪧 The Line Nobody Warns You About
&lt;/h2&gt;

&lt;p&gt;You know the one. It shows up on basically every job post:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Experience with real-world projects required."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm a student too, so I've seen it from the inside. You can ace every exam and still have nothing to point at. Tutorials end the second the video does. Real work is messier: there are tasks, blockers, deadlines, and (if you're lucky) someone you can ask when you're stuck.&lt;/p&gt;

&lt;p&gt;That gap is what &lt;strong&gt;SkillPilot&lt;/strong&gt; is about. And I built it for my friend &lt;strong&gt;Kritika&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Short Version
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Built for&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;My friend Kritika&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;The problem&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Students have grades but nothing that looks like real project experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What it is&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;An AI-powered learning platform that simulates real industry workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;The open-source bit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Gemma&lt;/strong&gt;, an open-weight model, running &lt;strong&gt;locally in my backend&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Built with&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Next.js 14 · Express + TypeScript · Flutter · MongoDB Atlas&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  So What Does It Actually Do?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you're a student&lt;/strong&gt;, it works like a tiny, friendly workplace:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tell it what you're into and how comfortable you are.&lt;/strong&gt; It hands you a real-feeling project: a title, a description, a difficulty level, a suggested tech stack, &lt;strong&gt;5–8 concrete tasks&lt;/strong&gt; and a deadline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work the board.&lt;/strong&gt; Tasks live on a Kanban board (To Do, In Progress, Done), and your progress updates automatically as you move cards across.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask the mentor when you're stuck.&lt;/strong&gt; It's an AI chat that knows which project you're in, so you get help with &lt;em&gt;your&lt;/em&gt; thing, not a generic answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finish and show it off.&lt;/strong&gt; When the project's done, SkillPilot writes a portfolio entry, a skills summary and &lt;strong&gt;resume-ready bullet points&lt;/strong&gt;. You get a public page at &lt;code&gt;/portfolio/[username]&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;If you're a recruiter&lt;/strong&gt;, you can browse and filter student profiles, open the projects and technologies behind them, and run an AI skill analysis that breaks a student's abilities down by category.&lt;/p&gt;

&lt;p&gt;And every bit of AI in there runs on &lt;strong&gt;Gemma, locally in my backend&lt;/strong&gt;. No closed API anywhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  Poke Around the Repo
&lt;/h2&gt;

&lt;p&gt;It's a monorepo. This is what the &lt;code&gt;web/&lt;/code&gt; side looks like when I &lt;code&gt;ls&lt;/code&gt; around:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SkillPilot/web$ ls
backend  frontend

SkillPilot/web/frontend$ ls
next.config.js  next-env.d.ts  package.json  package-lock.json  postcss.config.js  src  tailwind.config.ts  tsconfig.json

SkillPilot/web/backend$ ls
node_modules  package.json  package-lock.json  src  tsconfig.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's also a &lt;code&gt;mobile/&lt;/code&gt; Flutter app and a &lt;code&gt;docs/&lt;/code&gt; folder (architecture, setup, API notes) at the repo root.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A quick honesty note:&lt;/strong&gt; SkillPilot has a bit of a backstory. It began as a prototype for the TechmentorX Hackathon. What I'm writing about here is the current version, where the AI layer runs on open-weight Gemma locally in the backend.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It's Put Together
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; Next.js 16 (web)  ───┐
                      ├──►  Express + TypeScript API  ──►  AI service layer  ──►  Local Gemma
 Flutter (mobile)  ───┘              │
                                     └──►  MongoDB Atlas
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI calls live in their own service layer in the backend, separate from the route controllers. Controllers just ask it for a &lt;em&gt;project&lt;/em&gt;, a &lt;em&gt;mentor reply&lt;/em&gt;, a &lt;em&gt;portfolio&lt;/em&gt; or a &lt;em&gt;skill score&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What I used&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Web&lt;/td&gt;
&lt;td&gt;Next.js 14, TypeScript, Tailwind, Zustand, Framer Motion&lt;/td&gt;
&lt;td&gt;Quick dashboards, a public portfolio route, simple state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Node.js, Express, TypeScript, Mongoose&lt;/td&gt;
&lt;td&gt;Typed all the way through, fast to iterate on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile&lt;/td&gt;
&lt;td&gt;Flutter, Provider, Material 3&lt;/td&gt;
&lt;td&gt;One codebase, and students live on their phones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;MongoDB Atlas&lt;/td&gt;
&lt;td&gt;Projects, tasks, chats and portfolios are all document-shaped&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;JWT access + refresh tokens, bcrypt, httpOnly cookies&lt;/td&gt;
&lt;td&gt;Boring, safe defaults&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gemma (open-weight), run locally&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open weights I control, and no per-request cost&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;/api/auth/signup&lt;/code&gt; · &lt;code&gt;/api/auth/login&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/projects/generate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AI-generated project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PATCH&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/tasks/:projectId/:taskId/status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Move a Kanban card&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/chat/:projectId&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Project-scoped mentor chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/projects/:id/portfolio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Portfolio and resume bullets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/recruiter/students&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Browse talent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/recruiter/students/:id/skill-score&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AI skill analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How Gemma pulls its weight
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Project generation is a contract, not a chat.&lt;/strong&gt; The Kanban board has to render whatever the AI sends back, so the output has to follow a shape (simplified):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"difficulty"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"beginner | intermediate | advanced"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"techStack"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tasks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"deadline"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ISO date"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The mentor knows where you are.&lt;/strong&gt; &lt;code&gt;POST /api/chat/:projectId&lt;/code&gt; ties every conversation to one project, so answers are about what you're actually building.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portfolios write themselves.&lt;/strong&gt; When a project is finished, the AI looks at the project and its tasks and turns them into a summary, the skills you picked up, and resume bullets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skill scores are a starting point, not a verdict.&lt;/strong&gt; Scoring a person is the most sensitive thing SkillPilot does. The score is there to help a recruiter dig into a student's real projects, not to replace looking at them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Want to Run It?
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Backend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;web/backend
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env     &lt;span class="c"&gt;# add your credentials&lt;/span&gt;
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev              &lt;span class="c"&gt;# http://localhost:5000&lt;/span&gt;

&lt;span class="c"&gt;# Frontend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;web/frontend
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env.local
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev              &lt;span class="c"&gt;# http://localhost:3000&lt;/span&gt;

&lt;span class="c"&gt;# Mobile&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;mobile
flutter pub get
flutter run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;More detailed setup lives in &lt;code&gt;docs/setup.md&lt;/code&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%2Fcoma9nif8lfp52ga978t.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%2Fcoma9nif8lfp52ga978t.png" alt=" " width="800" height="460"&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%2Fhix0bi26xrb7yfpbs5s6.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%2Fhix0bi26xrb7yfpbs5s6.png" alt=" " width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Open (and Local) Matters Here
&lt;/h2&gt;

&lt;p&gt;The challenge asks where going open actually beats going closed. For SkillPilot, it's these five things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The AI lives on my backend, not someone else's.&lt;/strong&gt;&lt;br&gt;
People think twice about sharing unfinished project ideas, "why doesn't my code work?" questions, and skill scores with their name on them. With Gemma, &lt;strong&gt;inference happens on hardware I control&lt;/strong&gt;, so those prompts and answers don't get sent to a third-party model API. To be precise, the app's data is stored in MongoDB Atlas. Local Gemma keeps the &lt;em&gt;model side&lt;/em&gt; in my hands, and I'd rather claim exactly that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Students can't pay per token.&lt;/strong&gt;&lt;br&gt;
A mentor is only useful if you can ask the hundredth question without watching a meter. Local inference means &lt;strong&gt;no per-request cost and no model API key to rotate or leak.&lt;/strong&gt; It doesn't get pricier when more students show up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The model isn't wired into everything.&lt;/strong&gt;&lt;br&gt;
Since the AI calls sit in one service layer, upgrading or swapping the model stays contained to one place. I'm not at the mercy of one vendor's pricing, deprecations or surprise model updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Scoring people deserves something you can inspect.&lt;/strong&gt;&lt;br&gt;
A system that evaluates students for recruiters should sit on something you can examine and test. Open weights let me poke at how the scorer behaves instead of treating it as a black box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The honest trade-off.&lt;/strong&gt;&lt;br&gt;
A local open model is smaller than the biggest hosted ones. I'm fine with that for a product aimed at students: cheaper, more private on the model side, and fully in my control.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Closed API&lt;/th&gt;
&lt;th&gt;Local Gemma (SkillPilot)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Prompts leave my backend&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per request&lt;/td&gt;
&lt;td&gt;Per token&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swap or upgrade the model&lt;/td&gt;
&lt;td&gt;Vendor decides&lt;/td&gt;
&lt;td&gt;I decide&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Needs a model API key&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raw capability ceiling&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Where I'd Take It Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Get SkillPilot in front of more students and fix whatever confuses them.&lt;/li&gt;
&lt;li&gt;Show recruiters &lt;em&gt;why&lt;/em&gt; a skill score came out the way it did.&lt;/li&gt;
&lt;li&gt;Try other open models behind the same AI service layer.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Gemma, an open-weight model &lt;strong&gt;run locally in my backend&lt;/strong&gt;, powers every AI feature: project generation, the project-scoped mentor, portfolio writing and skill scoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of MongoDB Atlas:&lt;/strong&gt; Atlas is the data layer behind an app built on an open-weight model. It stores users, projects, task state, chat history and portfolios.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Before You Go
&lt;/h2&gt;

&lt;p&gt;Building for one person is a good constraint. Every feature has to earn its place by being useful to someone real, and for SkillPilot that someone is Kritika.&lt;/p&gt;

&lt;p&gt;If you've mentored a junior, or you &lt;em&gt;were&lt;/em&gt; the student with the empty portfolio, I'd love to hear what finally got you from "I've learned things" to "I've built something." Tell me in the comments. 👇&lt;/p&gt;

&lt;p&gt;Did this project with my friend as a teammate - &lt;a class="mentioned-user" href="https://dev.to/aniket937"&gt;@aniket937&lt;/a&gt; &lt;/p&gt;

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