<?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: Saksham Sontakke</title>
    <description>The latest articles on DEV Community by Saksham Sontakke (@saksham_sontakke_49a68eeb).</description>
    <link>https://dev.to/saksham_sontakke_49a68eeb</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%2F4156429%2Ffb4fd893-5475-4d8d-b7a5-1b22c4e3d38c.jpg</url>
      <title>DEV Community: Saksham Sontakke</title>
      <link>https://dev.to/saksham_sontakke_49a68eeb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saksham_sontakke_49a68eeb"/>
    <language>en</language>
    <item>
      <title>My Friend Copy-Pasted Random Commands From the Internet, So I Built an AI Ghost to Save His System</title>
      <dc:creator>Saksham Sontakke</dc:creator>
      <pubDate>Wed, 28 Oct 2026 09:17:20 +0000</pubDate>
      <link>https://dev.to/saksham_sontakke_49a68eeb/my-friend-copy-pasted-random-commands-from-the-internet-so-i-built-an-ai-ghost-to-save-his-system-55a1</link>
      <guid>https://dev.to/saksham_sontakke_49a68eeb/my-friend-copy-pasted-random-commands-from-the-internet-so-i-built-an-ai-ghost-to-save-his-system-55a1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Before you hit Enter, let the ghost reveal what lies beneath.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://client-one-rosy-53.vercel.app/" rel="noopener noreferrer"&gt;https://client-one-rosy-53.vercel.app/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/terminal-poltergeist" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/terminal-poltergeist&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Terminal Poltergeist&lt;/strong&gt; is an &lt;strong&gt;AI-powered shell command analysis and developer safety assistant&lt;/strong&gt; that combines an &lt;strong&gt;open-weight language model&lt;/strong&gt; with a &lt;strong&gt;deterministic security rule engine&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Developers frequently copy commands from Stack Overflow, GitHub repositories, documentation, and CI/CD pipelines without fully understanding their consequences. A misplaced flag, an unexpected pipe, or an incorrect filesystem path can turn an ordinary command into a destructive operation.&lt;/p&gt;

&lt;p&gt;I wanted to build something that helps developers understand these commands &lt;strong&gt;before they run them&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Inspired by the &lt;strong&gt;Ghost in the Machine&lt;/strong&gt; theme, I imagined a spectral guardian living inside the terminal—a ghost that examines unfamiliar commands, uncovers hidden dangers, explains cryptic flags, detects common typos, and suggests safer alternatives.&lt;/p&gt;

&lt;p&gt;That idea became &lt;strong&gt;Terminal Poltergeist&lt;/strong&gt;: a haunted command-analysis experience that turns developer uncertainty into understanding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Its most important rule: submitted commands are NEVER executed.&lt;/strong&gt; They are treated as untrusted input and analyzed using static parsing, deterministic security checks, and AI inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What Can It Do?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  👻 1. Haunted Terminal Experience
&lt;/h3&gt;

&lt;p&gt;The interface combines a dark &lt;strong&gt;Halloween aesthetic&lt;/strong&gt; with a retro terminal atmosphere, featuring &lt;strong&gt;CRT scanlines, spectral glows, glowing command prompts, subtle animations, and spooky developer-themed commentary&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 2. AI-Powered Command Autopsy
&lt;/h3&gt;

&lt;p&gt;Submit a shell command and receive a detailed breakdown of its &lt;strong&gt;behavior, flags, arguments, potential side effects, and possible risks&lt;/strong&gt;. The AI also suggests &lt;strong&gt;safer alternatives&lt;/strong&gt; when appropriate.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ 3. Deterministic Security Guardrails
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;JavaScript-based rule engine&lt;/strong&gt; identifies known dangerous command patterns independently of the language model.&lt;/p&gt;

&lt;p&gt;When a recognized hazard is detected, the engine enforces an appropriate minimum severity so that a reassuring AI response cannot override a known security risk.&lt;/p&gt;

&lt;h3&gt;
  
  
  🕸️ 4. Curated Demo Incantations
&lt;/h3&gt;

&lt;p&gt;Explore predefined examples covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fork bombs&lt;/strong&gt; and recursive deletion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dangerous filesystem permissions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw disk writes&lt;/strong&gt; and formatting operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote scripts piped directly into a shell&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Common command typos, such as &lt;code&gt;gti&lt;/code&gt; instead of &lt;code&gt;git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-existent commands&lt;/strong&gt; and phantom binaries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These examples let users explore different scenarios without executing any commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 5. Component-Level Breakdown
&lt;/h3&gt;

&lt;p&gt;The analyzer presents command components—including &lt;strong&gt;flags, arguments, and pipe operators&lt;/strong&gt;—in an understandable format, helping developers see how complex commands are constructed.&lt;/p&gt;

&lt;h3&gt;
  
  
  📜 6. Session History Dashboard
&lt;/h3&gt;

&lt;p&gt;Review previous analyses within an &lt;strong&gt;isolated anonymous session&lt;/strong&gt;, inspect risk levels, and explore the distribution of security findings.&lt;/p&gt;

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

&lt;p&gt;Terminal Poltergeist uses a &lt;strong&gt;dual-defense architecture&lt;/strong&gt; that combines &lt;strong&gt;open-weight AI&lt;/strong&gt; with &lt;strong&gt;deterministic security rules&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of relying entirely on an AI model, the application combines static command analysis, predefined security rules, and AI-generated explanations to produce a more informative security report.&lt;/p&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1. User Input&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;React + Vite Frontend&lt;/td&gt;
&lt;td&gt;Accepts a shell command submitted by the user.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2. API Layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Node.js + Express&lt;/td&gt;
&lt;td&gt;Validates requests and coordinates the analysis process.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3. Lexical Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Shell Lexer and Parser&lt;/td&gt;
&lt;td&gt;Breaks commands into recognizable components, such as arguments, flags, and operators.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4. Security Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Deterministic JavaScript Rule Engine&lt;/td&gt;
&lt;td&gt;Detects known dangerous patterns and enforces appropriate minimum risk severity.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5. AI Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;GPT-OSS 20B via Groq&lt;/td&gt;
&lt;td&gt;Explains command behavior, contextual risks, potential side effects, and safer alternatives.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6. Result Processing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Guardrail and Result Merger&lt;/td&gt;
&lt;td&gt;Combines rule-based findings with AI analysis while enforcing security rules.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;7. Report Generation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unified Security Report&lt;/td&gt;
&lt;td&gt;Produces structured findings, risk levels, explanations, and recommendations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;8. Storage and Display&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database Layer + React UI&lt;/td&gt;
&lt;td&gt;Persists analysis records where configured and displays results to the user.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🧠 1. Open-Weight AI Inference
&lt;/h3&gt;

&lt;p&gt;I integrated &lt;strong&gt;&lt;code&gt;openai/gpt-oss-20b&lt;/code&gt;&lt;/strong&gt; through &lt;strong&gt;Groq's hosted inference API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The model helps explain shell commands in plain language, break down flags and compound operations, identify contextual risks, and suggest safer alternatives. It also adds the project's signature spooky developer commentary.&lt;/p&gt;

&lt;p&gt;Using hosted inference allowed me to integrate an open-weight model without hosting model weights or maintaining GPU infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ 2. Deterministic Security Guardrails
&lt;/h3&gt;

&lt;p&gt;Language models can &lt;strong&gt;hallucinate, overlook dangerous command patterns, or be influenced by adversarial text&lt;/strong&gt; embedded in user input. For this reason, I did not rely on AI alone for security decisions.&lt;/p&gt;

&lt;p&gt;The deterministic JavaScript rule engine checks for known hazardous patterns, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fork bombs:&lt;/strong&gt; Recursive shell constructs that can exhaust system resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Root filesystem destruction:&lt;/strong&gt; Dangerous recursive deletion patterns and relevant flags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw disk operations:&lt;/strong&gt; Potentially destructive writes and filesystem formatting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privilege and permission risks:&lt;/strong&gt; Insecure recursive permission changes and modifications to sensitive system configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote code execution patterns:&lt;/strong&gt; Downloading scripts and immediately piping them into a shell.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a recognized hazard is detected, the rule engine applies a &lt;strong&gt;minimum severity appropriate to that rule&lt;/strong&gt;. The AI contributes contextual analysis, but it cannot downgrade a known hazard below its enforced severity.&lt;/p&gt;

&lt;p&gt;This approach makes the security logic more &lt;strong&gt;inspectable, testable, and predictable&lt;/strong&gt; than relying on an AI-generated risk score alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  👾 3. Phantom Binary and Typo Detection
&lt;/h3&gt;

&lt;p&gt;Not every failed command is a security threat. A misspelled command typically produces a &lt;strong&gt;command-not-found error&lt;/strong&gt; rather than executing successfully.&lt;/p&gt;

&lt;p&gt;Terminal Poltergeist distinguishes likely missing commands from dangerous operations by checking known utilities, common developer tools, and likely command typos.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;gti&lt;/code&gt; → possible correction: &lt;code&gt;git&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sl&lt;/code&gt; → possible correction: &lt;code&gt;ls&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;foobar123&lt;/code&gt; → possible command-not-found result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the tool identifies a likely missing command, it displays a dedicated &lt;strong&gt;COMMAND NOT FOUND&lt;/strong&gt; status card rather than automatically treating the input as malicious.&lt;/p&gt;

&lt;p&gt;These suggestions are advisory and depend on the available command knowledge and analysis context.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧰 4. Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, Express.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database layer:&lt;/strong&gt; Prisma ORM with PostgreSQL support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; GPT-OSS 20B through Groq&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; Static lexical analysis and deterministic JavaScript rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Automated unit and integration tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository is organized as a &lt;strong&gt;monorepo&lt;/strong&gt;, with separate &lt;code&gt;client/&lt;/code&gt; and &lt;code&gt;server/&lt;/code&gt; applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧪 5. Testing and Reliability
&lt;/h3&gt;

&lt;p&gt;The project includes &lt;strong&gt;37 automated unit and integration tests&lt;/strong&gt; covering lexical parsing, security rules, phantom command detection, and prompt-injection defenses.&lt;/p&gt;

&lt;p&gt;The goal is to make the application more than a themed AI wrapper: the core safety checks should be &lt;strong&gt;inspectable, testable, and independently maintained&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most importantly, submitted commands are never executed.&lt;/strong&gt; They are treated as untrusted input and analyzed as data. The application provides advisory security findings rather than guaranteeing that any command is completely safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Open innovation is especially valuable when building &lt;strong&gt;developer-facing security tools&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔓 1. Model Choice and Reduced Vendor Lock-In
&lt;/h3&gt;

&lt;p&gt;By separating inference from the application logic, the project can be adapted to compatible model providers. This creates a path toward local inference with tools such as &lt;strong&gt;Ollama&lt;/strong&gt; or self-hosted inference servers, subject to model compatibility and available hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 2. Transparent, Inspectable Security Logic
&lt;/h3&gt;

&lt;p&gt;The deterministic rule engine can be &lt;strong&gt;reviewed, tested, and extended by contributors&lt;/strong&gt;. Known dangerous patterns do not have to be entrusted entirely to a black-box language model.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌱 3. Accessibility for Independent Developers
&lt;/h3&gt;

&lt;p&gt;Hosted open-weight inference lets me experiment with capable models without maintaining GPU infrastructure. A future local-inference option could also make the tool more accessible to developers who prefer to run models on their own hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 4. A Foundation for Privacy-Conscious Tooling
&lt;/h3&gt;

&lt;p&gt;Shell commands can contain &lt;strong&gt;internal paths, credentials, and infrastructure details&lt;/strong&gt;. The application should minimize the information sent to external services, avoid unnecessary retention, and make its processing model clear to users.&lt;/p&gt;

&lt;p&gt;The current version uses &lt;strong&gt;hosted inference&lt;/strong&gt;, so AI analysis requires an internet connection and submitted analysis data may be processed by the inference provider. Local inference remains a potential future extension rather than a capability I claim the current deployment already provides.&lt;/p&gt;

&lt;p&gt;For me, &lt;strong&gt;open innovation is not just about choosing an open-weight model&lt;/strong&gt;. It is about making the surrounding system adaptable, inspectable, and open to improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  👻 The Spirit of the Machine
&lt;/h2&gt;

&lt;p&gt;Every developer knows that moment of hesitation before pressing Enter.&lt;/p&gt;

&lt;p&gt;You have copied a command from somewhere on the internet. It looks correct. You think you understand it. But one flag, one path, or one pipe could change everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terminal Poltergeist is built around that moment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It gives developers a place to pause, investigate, and understand before taking action. The ghost is more than a Halloween character: it represents the hidden behavior inside commands that we often execute without fully understanding.&lt;/p&gt;

&lt;p&gt;By combining &lt;strong&gt;open-weight AI with deterministic security guardrails&lt;/strong&gt;, I wanted to make command-line safety more approachable without pretending that AI can guarantee perfect protection.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“The terminal may be mysterious. Your commands shouldn't be.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🏆 Challenge Tracks
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Ghost in the Machine — Hacktoberfest Open-Source AI Challenge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Additional Track:&lt;/strong&gt; Open-Weight AI Innovation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 &lt;strong&gt;Try the Live Application:&lt;/strong&gt; &lt;a href="https://client-one-rosy-53.vercel.app/" rel="noopener noreferrer"&gt;https://client-one-rosy-53.vercel.app/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;Explore the Source Code:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/terminal-poltergeist" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/terminal-poltergeist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built with curiosity, open-source AI, and a little bit of digital haunting.&lt;/strong&gt; 👻&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My Friend Copy-Pasted Random Commands From the Internet, So I Built an AI Ghost to Save His System</title>
      <dc:creator>Saksham Sontakke</dc:creator>
      <pubDate>Wed, 28 Oct 2026 09:09:49 +0000</pubDate>
      <link>https://dev.to/saksham_sontakke_49a68eeb/my-friend-copy-pasted-random-commands-from-the-internet-so-i-built-an-ai-ghost-to-save-his-system-15me</link>
      <guid>https://dev.to/saksham_sontakke_49a68eeb/my-friend-copy-pasted-random-commands-from-the-internet-so-i-built-an-ai-ghost-to-save-his-system-15me</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge · Week 4: Ghost in the Machine&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Before you hit Enter, let the ghost reveal what lies beneath.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://client-one-rosy-53.vercel.app/" rel="noopener noreferrer"&gt;https://client-one-rosy-53.vercel.app/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/terminal-poltergeist" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/terminal-poltergeist&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Terminal Poltergeist&lt;/strong&gt; is an &lt;strong&gt;AI-powered shell command analysis and developer safety assistant&lt;/strong&gt; that combines an &lt;strong&gt;open-weight language model&lt;/strong&gt; with a &lt;strong&gt;deterministic security rule engine&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Developers frequently copy commands from Stack Overflow, GitHub repositories, documentation, and CI/CD pipelines without fully understanding their consequences. A misplaced flag, an unexpected pipe, or an incorrect filesystem path can turn an ordinary command into a destructive operation.&lt;/p&gt;

&lt;p&gt;I wanted to build something that helps developers understand these commands &lt;strong&gt;before they run them&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Inspired by the &lt;strong&gt;Ghost in the Machine&lt;/strong&gt; theme, I imagined a spectral guardian living inside the terminal—a ghost that examines unfamiliar commands, uncovers hidden dangers, explains cryptic flags, detects common typos, and suggests safer alternatives.&lt;/p&gt;

&lt;p&gt;That idea became &lt;strong&gt;Terminal Poltergeist&lt;/strong&gt;: a haunted command-analysis experience that turns developer uncertainty into understanding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Its most important rule: submitted commands are NEVER executed.&lt;/strong&gt; They are treated as untrusted input and analyzed using static parsing, deterministic security checks, and AI inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What Can It Do?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  👻 1. Haunted Terminal Experience
&lt;/h3&gt;

&lt;p&gt;The interface combines a dark &lt;strong&gt;Halloween aesthetic&lt;/strong&gt; with a retro terminal atmosphere, featuring &lt;strong&gt;CRT scanlines, spectral glows, glowing command prompts, subtle animations, and spooky developer-themed commentary&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 2. AI-Powered Command Autopsy
&lt;/h3&gt;

&lt;p&gt;Submit a shell command and receive a detailed breakdown of its &lt;strong&gt;behavior, flags, arguments, potential side effects, and possible risks&lt;/strong&gt;. The AI also suggests &lt;strong&gt;safer alternatives&lt;/strong&gt; when appropriate.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ 3. Deterministic Security Guardrails
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;JavaScript-based rule engine&lt;/strong&gt; identifies known dangerous command patterns independently of the language model.&lt;/p&gt;

&lt;p&gt;When a recognized hazard is detected, the engine enforces an appropriate minimum severity so that a reassuring AI response cannot override a known security risk.&lt;/p&gt;

&lt;h3&gt;
  
  
  🕸️ 4. Curated Demo Incantations
&lt;/h3&gt;

&lt;p&gt;Explore predefined examples covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fork bombs&lt;/strong&gt; and recursive deletion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dangerous filesystem permissions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw disk writes&lt;/strong&gt; and formatting operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote scripts piped directly into a shell&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Common command typos, such as &lt;code&gt;gti&lt;/code&gt; instead of &lt;code&gt;git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-existent commands&lt;/strong&gt; and phantom binaries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These examples let users explore different scenarios without executing any commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 5. Component-Level Breakdown
&lt;/h3&gt;

&lt;p&gt;The analyzer presents command components—including &lt;strong&gt;flags, arguments, and pipe operators&lt;/strong&gt;—in an understandable format, helping developers see how complex commands are constructed.&lt;/p&gt;

&lt;h3&gt;
  
  
  📜 6. Session History Dashboard
&lt;/h3&gt;

&lt;p&gt;Review previous analyses within an &lt;strong&gt;isolated anonymous session&lt;/strong&gt;, inspect risk levels, and explore the distribution of security findings.&lt;/p&gt;

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

&lt;p&gt;Terminal Poltergeist uses a &lt;strong&gt;dual-defense architecture&lt;/strong&gt; that combines &lt;strong&gt;open-weight AI&lt;/strong&gt; with &lt;strong&gt;deterministic security rules&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of relying entirely on an AI model, the application combines static command analysis, predefined security rules, and AI-generated explanations to produce a more informative security report.&lt;/p&gt;

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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1. User Input&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;React + Vite Frontend&lt;/td&gt;
&lt;td&gt;Accepts a shell command submitted by the user.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2. API Layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Node.js + Express&lt;/td&gt;
&lt;td&gt;Validates requests and coordinates the analysis process.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3. Lexical Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Shell Lexer and Parser&lt;/td&gt;
&lt;td&gt;Breaks commands into recognizable components, such as arguments, flags, and operators.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4. Security Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Deterministic JavaScript Rule Engine&lt;/td&gt;
&lt;td&gt;Detects known dangerous patterns and enforces appropriate minimum risk severity.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5. AI Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;GPT-OSS 20B via Groq&lt;/td&gt;
&lt;td&gt;Explains command behavior, contextual risks, potential side effects, and safer alternatives.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6. Result Processing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Guardrail and Result Merger&lt;/td&gt;
&lt;td&gt;Combines rule-based findings with AI analysis while enforcing security rules.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;7. Report Generation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unified Security Report&lt;/td&gt;
&lt;td&gt;Produces structured findings, risk levels, explanations, and recommendations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;8. Storage and Display&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database Layer + React UI&lt;/td&gt;
&lt;td&gt;Persists analysis records where configured and displays results to the user.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  1. Open-Weight AI Inference
&lt;/h3&gt;

&lt;p&gt;I integrated &lt;strong&gt;&lt;code&gt;openai/gpt-oss-20b&lt;/code&gt;&lt;/strong&gt; through &lt;strong&gt;Groq's hosted inference API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The model helps explain shell commands in plain language, break down flags and compound operations, identify contextual risks, and suggest safer alternatives. It also adds the project's signature spooky developer commentary.&lt;/p&gt;

&lt;p&gt;Using hosted inference allowed me to integrate an open-weight model without hosting model weights or maintaining GPU infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Deterministic Security Guardrails
&lt;/h3&gt;

&lt;p&gt;Language models can &lt;strong&gt;hallucinate, overlook dangerous command patterns, or be influenced by adversarial text&lt;/strong&gt; embedded in user input. For this reason, I did not rely on AI alone for security decisions.&lt;/p&gt;

&lt;p&gt;The deterministic JavaScript rule engine checks for known hazardous patterns, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fork bombs:&lt;/strong&gt; Recursive shell constructs that can exhaust system resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Root filesystem destruction:&lt;/strong&gt; Dangerous recursive deletion patterns and relevant flags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw disk operations:&lt;/strong&gt; Potentially destructive writes and filesystem formatting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privilege and permission risks:&lt;/strong&gt; Insecure recursive permission changes and modifications to sensitive system configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote code execution patterns:&lt;/strong&gt; Downloading scripts and immediately piping them into a shell.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a recognized hazard is detected, the rule engine applies a &lt;strong&gt;minimum severity appropriate to that rule&lt;/strong&gt;. The AI contributes contextual analysis, but it cannot downgrade a known hazard below its enforced severity.&lt;/p&gt;

&lt;p&gt;This approach makes the security logic more &lt;strong&gt;inspectable, testable, and predictable&lt;/strong&gt; than relying on an AI-generated risk score alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Phantom Binary and Typo Detection
&lt;/h3&gt;

&lt;p&gt;Not every failed command is a security threat. A misspelled command typically produces a &lt;strong&gt;command-not-found error&lt;/strong&gt; rather than executing successfully.&lt;/p&gt;

&lt;p&gt;Terminal Poltergeist distinguishes likely missing commands from dangerous operations by checking known utilities, common developer tools, and likely command typos.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;gti&lt;/code&gt; → possible correction: &lt;code&gt;git&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sl&lt;/code&gt; → possible correction: &lt;code&gt;ls&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;foobar123&lt;/code&gt; → possible command-not-found result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the tool identifies a likely missing command, it displays a dedicated &lt;strong&gt;COMMAND NOT FOUND&lt;/strong&gt; status card rather than automatically treating the input as malicious.&lt;/p&gt;

&lt;p&gt;These suggestions are advisory and depend on the available command knowledge and analysis context.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, Express.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database layer:&lt;/strong&gt; Prisma ORM with PostgreSQL support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; GPT-OSS 20B through Groq&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; Static lexical analysis and deterministic JavaScript rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Automated unit and integration tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository is organized as a &lt;strong&gt;monorepo&lt;/strong&gt;, with separate &lt;code&gt;client/&lt;/code&gt; and &lt;code&gt;server/&lt;/code&gt; applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Testing and Reliability
&lt;/h3&gt;

&lt;p&gt;The project includes &lt;strong&gt;37 automated unit and integration tests&lt;/strong&gt; covering lexical parsing, security rules, phantom command detection, and prompt-injection defenses.&lt;/p&gt;

&lt;p&gt;The goal is to make the application more than a themed AI wrapper: the core safety checks should be &lt;strong&gt;inspectable, testable, and independently maintained&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most importantly, submitted commands are never executed.&lt;/strong&gt; They are treated as untrusted input and analyzed as data. The application provides advisory security findings rather than guaranteeing that any command is completely safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Open innovation is especially valuable when building &lt;strong&gt;developer-facing security tools&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Model Choice and Reduced Vendor Lock-In
&lt;/h3&gt;

&lt;p&gt;By separating inference from the application logic, the project can be adapted to compatible model providers. This creates a path toward local inference with tools such as &lt;strong&gt;Ollama&lt;/strong&gt; or self-hosted inference servers, subject to model compatibility and available hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Transparent, Inspectable Security Logic
&lt;/h3&gt;

&lt;p&gt;The deterministic rule engine can be &lt;strong&gt;reviewed, tested, and extended by contributors&lt;/strong&gt;. Known dangerous patterns do not have to be entrusted entirely to a black-box language model.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Accessibility for Independent Developers
&lt;/h3&gt;

&lt;p&gt;Hosted open-weight inference lets me experiment with capable models without maintaining GPU infrastructure. A future local-inference option could also make the tool more accessible to developers who prefer to run models on their own hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. A Foundation for Privacy-Conscious Tooling
&lt;/h3&gt;

&lt;p&gt;Shell commands can contain &lt;strong&gt;internal paths, credentials, and infrastructure details&lt;/strong&gt;. The application should minimize the information sent to external services, avoid unnecessary retention, and make its processing model clear to users.&lt;/p&gt;

&lt;p&gt;The current version uses &lt;strong&gt;hosted inference&lt;/strong&gt;, so AI analysis requires an internet connection and submitted analysis data may be processed by the inference provider. Local inference remains a potential future extension rather than a capability I claim the current deployment already provides.&lt;/p&gt;

&lt;p&gt;For me, &lt;strong&gt;open innovation is not just about choosing an open-weight model&lt;/strong&gt;. It is about making the surrounding system adaptable, inspectable, and open to improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  👻 The Spirit of the Machine
&lt;/h2&gt;

&lt;p&gt;Every developer knows that moment of hesitation before pressing Enter.&lt;/p&gt;

&lt;p&gt;You have copied a command from somewhere on the internet. It looks correct. You think you understand it. But one flag, one path, or one pipe could change everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terminal Poltergeist is built around that moment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It gives developers a place to pause, investigate, and understand before taking action. The ghost is more than a Halloween character: it represents the hidden behavior inside commands that we often execute without fully understanding.&lt;/p&gt;

&lt;p&gt;By combining &lt;strong&gt;open-weight AI with deterministic security guardrails&lt;/strong&gt;, I wanted to make command-line safety more approachable without pretending that AI can guarantee perfect protection.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“The terminal may be mysterious. Your commands shouldn't be.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🏆 Challenge Tracks
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Ghost in the Machine — Hacktoberfest Open-Source AI Challenge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Additional Track:&lt;/strong&gt; Open-Weight AI Innovation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 &lt;strong&gt;Try the Live Application:&lt;/strong&gt; &lt;a href="https://client-one-rosy-53.vercel.app/" rel="noopener noreferrer"&gt;https://client-one-rosy-53.vercel.app/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;Explore the Source Code:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/terminal-poltergeist" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/terminal-poltergeist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built with curiosity, open-source AI, and a little bit of digital haunting.&lt;/strong&gt; 👻&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My Friend Kept Forgetting Where He Left Off, So I Built ContextGhost 👻</title>
      <dc:creator>Saksham Sontakke</dc:creator>
      <pubDate>Wed, 21 Oct 2026 16:42:35 +0000</pubDate>
      <link>https://dev.to/saksham_sontakke_49a68eeb/my-friend-kept-forgetting-where-he-left-off-so-i-built-contextghost-5dkm</link>
      <guid>https://dev.to/saksham_sontakke_49a68eeb/my-friend-kept-forgetting-where-he-left-off-so-i-built-contextghost-5dkm</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;Every developer knows the dreaded feeling of returning to an interrupted task: you close your laptop at the end of the day or get pulled into a 2-hour meeting, and when you return, you waste 30 to 45 minutes just reconstructing your mental state:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Which files was I editing without committing?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What was that terminal error stack trace?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What experiments did I already try that failed so I don't repeat them?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What is my exact next step to resume coding right now?"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To solve this, I built &lt;strong&gt;ContextGhost&lt;/strong&gt; — an open-source, developer work-memory assistant that captures ephemeral, uncommitted developer context and synthesizes it into actionable &lt;strong&gt;Resumption Briefings&lt;/strong&gt; powered by open-weight AI.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Commit Context Capture:&lt;/strong&gt; Captures uncommitted Git diffs, scratch notes, terminal logs, and previous failed debugging attempts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Layer Secret Redaction:&lt;/strong&gt; Automatically strips API keys, JWT tokens, AWS/Stripe credentials, and database connection strings into &lt;code&gt;[REDACTED_SECRET]&lt;/code&gt; before storage or AI synthesis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Powered Resumption Briefing:&lt;/strong&gt; Synthesizes an executive summary, checkable unfinished tasks, exact step-by-step resumption instructions, and a &lt;strong&gt;Resumption Readiness Score&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Searchable Work Memory:&lt;/strong&gt; Fast retrieval across all past debugging sessions and technical notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in User Guide &amp;amp; Manual:&lt;/strong&gt; An interactive, in-app documentation guide explaining every section.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Application:&lt;/strong&gt; &lt;a href="https://context-ghost.vercel.app" rel="noopener noreferrer"&gt;https://context-ghost.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-App User Manual:&lt;/strong&gt; &lt;a href="https://context-ghost.vercel.app/guide" rel="noopener noreferrer"&gt;https://context-ghost.vercel.app/guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;The entire codebase is open-source and organized as a clean monorepo:&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/CyborgX-hash" rel="noopener noreferrer"&gt;
        CyborgX-hash
      &lt;/a&gt; / &lt;a href="https://github.com/CyborgX-hash/ContextGhost" rel="noopener noreferrer"&gt;
        ContextGhost
      &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;ContextGhost 👻&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Forget where you left off. ContextGhost remembers.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://hacktoberfest.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/2e7db9a34fb18a0ef98ec7ce35c611c2556bbf27c0cb9e3fcd345c1ae2ad0bbd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d323032362532305765656b253230332d626c756576696f6c65743f7374796c653d666f722d7468652d6261646765" alt="Hacktoberfest 2026"&gt;&lt;/a&gt;
&lt;a href="https://github.com/CyborgX-hash/ContextGhost/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/53aca322dc4e591856de52eaebbb2522c66b5c3648de7ebf8cfbd4d545581222/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d656d6572616c643f7374796c653d666f722d7468652d6261646765" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://openrouter.ai/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/87a3198ccb67cfdf715ffc800384cb31443d159f2966f424e26750d0c9cbf6b9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492d4f70656e2d2d576569676874253230284f70656e526f75746572292d626c75653f7374796c653d666f722d7468652d6261646765" alt="Hosted Open-Weight AI"&gt;&lt;/a&gt;
&lt;a href="https://www.prisma.io/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d8ae53835185cf6a49548bdea0da78bacc4891ff12b1234890c31186d4f2b764/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f44617461626173652d506f737467726553514c253230253242253230507269736d612d3333363739313f7374796c653d666f722d7468652d6261646765" alt="PostgreSQL"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ContextGhost is a &lt;strong&gt;developer work-memory assistant&lt;/strong&gt; that helps software engineers resume interrupted work without reconstructing their entire mental context. It captures your active Git state, modified files, terminal errors, test results, and notes, uses a &lt;strong&gt;hosted open-weight AI model&lt;/strong&gt; (via OpenRouter or Groq) or a local Ollama instance to synthesize a grounded session summary, persists relational records in &lt;strong&gt;PostgreSQL&lt;/strong&gt;, and generates actionable &lt;strong&gt;"Resume My Work"&lt;/strong&gt; briefings whenever you return to your codebase.&lt;/p&gt;
&lt;p&gt;Built for &lt;strong&gt;Hacktoberfest 2026 Week 3 ("Slow and Steady")&lt;/strong&gt;, ContextGhost demonstrates that open-weight AI models can eliminate mental fatigue and repetitive context-switching without requiring heavy local server installations or proprietary closed APIs.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ The Problem: Context Switching Fatigue&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Developers lose up to 40% of their daily productive hours recovering from interruptions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;What was I implementing right before that 2-hour meeting?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Which files did I touch, and why?&lt;/em&gt;&lt;/li&gt;
&lt;li&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/CyborgX-hash/ContextGhost" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, Tailwind CSS, Lucide Icons (hosted on Vercel)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, Express, Prisma ORM, PostgreSQL (hosted on Render &amp;amp; Prisma Accelerate)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Engine:&lt;/strong&gt; Hosted open-weight inference (Groq / OpenRouter) with local offline Ollama fallback&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;ContextGhost was built around the philosophy that AI should assist developer workflow without demanding proprietary lock-in or heavy infrastructure costs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hosted Open-Weight Models:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrated &lt;strong&gt;Qwen 3.8 27B&lt;/strong&gt; hosted on Groq's high-speed LPU infrastructure, delivering ultra-fast (sub-second) structured JSON analysis on a free tier.&lt;/li&gt;
&lt;li&gt;Built a pluggable AI provider architecture (&lt;code&gt;GroqProvider&lt;/code&gt;, &lt;code&gt;OpenRouterProvider&lt;/code&gt;, and &lt;code&gt;OllamaProvider&lt;/code&gt;) via a centralized &lt;code&gt;ProviderFactory&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Offline &amp;amp; Edge Flexibility:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If a developer is working offline on an airplane, ContextGhost seamlessly falls back to a local &lt;strong&gt;Ollama&lt;/strong&gt; instance (&lt;code&gt;qwen2.5:1.5b&lt;/code&gt;) without modifying any application code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Privacy First by Design:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context is sanitized through a deterministic regex-based secret scrubber before it ever reaches the AI engine or PostgreSQL database.&lt;/li&gt;
&lt;li&gt;A live "Inspect Sanitized Payload" modal allows developers to review exactly what will be sent to the model with explicit consent toggles.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Structured JSON Validation &amp;amp; Fallback:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implemented a resilient prompt engineering pipeline that forces deterministic JSON schemas (&lt;code&gt;summary&lt;/code&gt;, &lt;code&gt;immediateObjective&lt;/code&gt;, &lt;code&gt;unfinishedTasks&lt;/code&gt;, &lt;code&gt;resumptionSteps&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;If an AI provider experiences rate-limiting or network timeouts, the system gracefully falls back to a structured &lt;code&gt;RAW_SNAPSHOT&lt;/code&gt; so developer work is never lost.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Open innovation is the cornerstone of developer tooling:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Developer Trust &amp;amp; Privacy:&lt;/strong&gt; Proprietary, closed-source models require piping sensitive source code, internal error traces, and architectural thoughts into opaque corporate black boxes. Open-weight models guarantee that developers can inspect, host, and verify exactly where their data goes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Longevity &amp;amp; Portability:&lt;/strong&gt; Unlike closed APIs that can deprecate models or change pricing overnight, open-weight models (like Qwen, Llama, and Mistral) can run anywhere — from serverless cloud providers like Groq to an air-gapped local laptop via Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hyper-Specialization:&lt;/strong&gt; Open innovation allowed us to benchmark and switch open-weight models for structured code synthesis without rewriting any backend logic.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;ContextGhost is the ultimate tool for lazy engineering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No More Re-debugging:&lt;/strong&gt; Instead of spending 45 minutes on Monday morning trying to remember why a webhook signature failed on Friday, ContextGhost presents an exact 3-step checklist of where you left off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Effortless Context Dumps:&lt;/strong&gt; You don't have to write structured documentation. You just paste your raw terminal output and a messy sentence, and the open-weight model turns it into a structured, checkable resumption plan.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Groq / Open-Weight AI Track&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My Friend Was Tired of GitHub Issue Chaos, So I Built an AI to Fix It</title>
      <dc:creator>Saksham Sontakke</dc:creator>
      <pubDate>Sun, 18 Oct 2026 12:21:29 +0000</pubDate>
      <link>https://dev.to/saksham_sontakke_49a68eeb/my-friend-was-tired-of-github-issue-chaos-so-i-built-an-ai-to-fix-it-1183</link>
      <guid>https://dev.to/saksham_sontakke_49a68eeb/my-friend-was-tired-of-github-issue-chaos-so-i-built-an-ai-to-fix-it-1183</guid>
      <description>&lt;h1&gt;
  
  
  IssuePilot: An Open-Weight AI Copilot to End GitHub Issue Triage Burnout
&lt;/h1&gt;

&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;Maintainer burnout is a growing problem in open-source software. Popular repositories receive dozens of issues every day: duplicate bug reports, missing reproduction steps, unstructured feature requests, and issues without proper labels. Maintainers end up spending valuable time on repetitive triage instead of building and improving software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IssuePilot&lt;/strong&gt; is an AI-powered GitHub Issue Triage and Management platform built around open-weight AI. It acts as an intelligent copilot for open-source maintainers, engineering teams, and SaaS companies, helping them organize incoming issues while keeping humans in control.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can IssuePilot do?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Intelligent Issue Classification:&lt;/strong&gt; Categorizes issues as Bugs, Feature Requests, Documentation, Security, or Questions, and recommends priorities ranging from P0 (Blocker) to P3 (Low).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Duplicate Detection:&lt;/strong&gt; Uses vector embeddings and cosine similarity to identify potentially duplicate issues, even when they use different terminology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-Loop Review Queue:&lt;/strong&gt; Stages suggested labels, priorities, duplicate links, and clarification replies for maintainers to approve or reject before changes are applied to GitHub.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Upstream Issue Synchronization:&lt;/strong&gt; Resolves upstream repositories for forks where issues are disabled, allowing contributors to explore and triage real-world upstream issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Repository Management:&lt;/strong&gt; Connects repositories through a GitHub App and provides a centralized workspace for reviewing issue triage results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple: &lt;strong&gt;reduce repetitive work without handing control of a repository to an unpredictable bot.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Who would pay for it?
&lt;/h3&gt;

&lt;p&gt;IssuePilot is designed for open-source foundations, funded projects, enterprise engineering teams, and SaaS startups maintaining public SDKs and APIs.&lt;/p&gt;

&lt;p&gt;The planned micro-SaaS model includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free:&lt;/strong&gt; Individual maintainers managing up to three repositories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team — $19–$49/month:&lt;/strong&gt; Organizations that need multi-repository triage, duplicate detection, SLA tracking, and batch actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The business opportunity is to help engineering teams spend less time organizing issues and more time shipping reliable software.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Web Application:&lt;/strong&gt; &lt;a href="https://issue-pilot-ten.vercel.app/" rel="noopener noreferrer"&gt;https://issue-pilot-ten.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend API and Health Check:&lt;/strong&gt; &lt;a href="https://issue-pilot.onrender.com/api/health" rel="noopener noreferrer"&gt;https://issue-pilot.onrender.com/api/health&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open the web application, sign in with GitHub, and explore connected repositories, AI-generated triage summaries, and the staged action review queue. The backend is hosted on Render, so the first request may take a little longer if the service needs to wake up.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/Issue-pilot" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/Issue-pilot&lt;/a&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/CyborgX-hash" rel="noopener noreferrer"&gt;
        CyborgX-hash
      &lt;/a&gt; / &lt;a href="https://github.com/CyborgX-hash/Issue-pilot" rel="noopener noreferrer"&gt;
        Issue-pilot
      &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;IssuePilot&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Less time triaging. More time building.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;IssuePilot is a production-minded, AI-powered GitHub issue management platform designed for open-source maintainers and engineering teams. It connects directly with GitHub via a dedicated GitHub App, categorizes incoming issues using open-weight AI (Gemma), detects potential duplicate issues through semantic similarity, and identifies missing bug report information.&lt;/p&gt;
&lt;p&gt;Crucially, &lt;strong&gt;IssuePilot enforces human-in-the-loop oversight&lt;/strong&gt;: AI recommendations are staged in an approval queue where maintainers can inspect, edit, approve, or reject changes before any action is committed to GitHub.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub App Integration&lt;/strong&gt;: Clean authorization and granular installation flow scoping permissions only to selected repositories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Issue Synchronization&lt;/strong&gt;: Fetches and caches issues and labels, filtering out pull requests cleanly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight AI Triage&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Classifies issues into &lt;code&gt;BUG&lt;/code&gt;, &lt;code&gt;FEATURE_REQUEST&lt;/code&gt;, &lt;code&gt;ENHANCEMENT&lt;/code&gt;, &lt;code&gt;DOCUMENTATION&lt;/code&gt;, &lt;code&gt;QUESTION&lt;/code&gt;, or &lt;code&gt;OTHER&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Recommends issue priority (&lt;code&gt;CRITICAL&lt;/code&gt;, &lt;code&gt;HIGH&lt;/code&gt;, &lt;code&gt;MEDIUM&lt;/code&gt;, &lt;code&gt;LOW&lt;/code&gt;) grounded in factual…&lt;/li&gt;
&lt;/ul&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/CyborgX-hash/Issue-pilot" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 18, Vite, Tailwind CSS, Lucide icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js, Express.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL with Prisma ORM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Integration:&lt;/strong&gt; GitHub App authentication, Octokit, authenticated webhooks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Inference:&lt;/strong&gt; Groq SDK with Gemma 2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Vitest integration tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is organized as a full-stack monorepo with separate &lt;code&gt;client/&lt;/code&gt;, &lt;code&gt;server/&lt;/code&gt;, and &lt;code&gt;docs/&lt;/code&gt; directories.&lt;/p&gt;

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

&lt;p&gt;IssuePilot combines open-weight AI, semantic search, and secure GitHub integration to create a practical developer productivity tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open-Weight AI with Gemma 2
&lt;/h3&gt;

&lt;p&gt;The core triage engine uses &lt;strong&gt;Gemma 2 (&lt;code&gt;gemma2-9b-it&lt;/code&gt;)&lt;/strong&gt;, served through Groq for low-latency inference. The architecture is designed to support compatible local inference deployments through tools such as Ollama or vLLM.&lt;/p&gt;

&lt;p&gt;Instead of relying on unstructured AI responses, I used Zod schema validation to enforce structured output containing issue categories, confidence scores, priority recommendations, suggested labels, justifications, and clarification drafts.&lt;/p&gt;

&lt;p&gt;Because GitHub issue descriptions are user-generated input, the system also uses prompt-boundary separation and defensive validation to reduce prompt-injection risks.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Semantic Duplicate Detection
&lt;/h3&gt;

&lt;p&gt;Keyword matching alone cannot reliably identify duplicates. Two developers might describe the same bug using completely different words.&lt;/p&gt;

&lt;p&gt;IssuePilot uses the open-weight &lt;code&gt;all-MiniLM-L6-v2&lt;/code&gt; embedding model to represent issue titles and descriptions as vectors. A cosine-similarity engine compares these representations against existing issues to surface likely duplicates, including reports from closed issues.&lt;/p&gt;

&lt;p&gt;This helps maintainers find related reports without manually searching through hundreds of issue descriptions.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. GitHub App Integration
&lt;/h3&gt;

&lt;p&gt;IssuePilot connects to GitHub through a GitHub App built using Octokit. Authenticated webhooks ingest issue events, while installation-based access supports repository-level integration.&lt;/p&gt;

&lt;p&gt;The application uses HMAC-SHA256 webhook signature verification, authenticated API access, and a staged review workflow. AI suggestions are not directly applied to repositories: maintainers must approve proposed actions before the application makes changes through the GitHub REST API.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. A Human-First Workflow
&lt;/h3&gt;

&lt;p&gt;The most important design decision was to avoid building another bot that automatically posts comments everywhere.&lt;/p&gt;

&lt;p&gt;IssuePilot stages proposed actions in a review queue so maintainers can inspect, approve, or reject them. This makes AI useful without removing human judgment from repository management.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Testing and Deployment
&lt;/h3&gt;

&lt;p&gt;I used agentic pair-programming workflows to help develop the Prisma schema, implement integration tests, and improve deployment behavior.&lt;/p&gt;

&lt;p&gt;The test suite reached &lt;strong&gt;34/34 passing tests&lt;/strong&gt; during development, covering areas such as webhook signature verification, authorization guards, and duplicate-similarity checks.&lt;/p&gt;

&lt;p&gt;The frontend is deployed on Vercel, and the backend is deployed on Render.&lt;/p&gt;

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

&lt;p&gt;Open innovation made IssuePilot possible by giving me access to capable models and tools without requiring a proprietary AI model to be the foundation of the product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freedom of deployment:&lt;/strong&gt; Gemma 2 can be served through an inference provider or a compatible self-hosted setup. Organizations can explore deployment options that fit their infrastructure, cost, and security requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greater control over sensitive data:&lt;/strong&gt; Repository issues may contain internal implementation details, stack traces, or vulnerability reports. A self-hosted inference configuration can help organizations keep inference within their own environment, provided the rest of the application and its integrations are configured accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lower barriers to experimentation:&lt;/strong&gt; Open-weight models and open-source embedding tools make it easier to experiment with domain-specific triage, evaluate different inference configurations, and adapt the system to different programming languages and repositories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Room to improve:&lt;/strong&gt; The architecture creates opportunities to evaluate model accuracy on real issue datasets and potentially fine-tune models for specialized engineering workflows.&lt;/p&gt;

&lt;p&gt;Open innovation is not just about avoiding vendor lock-in. It is about giving developers more control over how AI is deployed, evaluated, and improved.&lt;/p&gt;

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

&lt;p&gt;I used agentic pair-programming workflows throughout development to accelerate implementation and testing. The workflow helped scaffold the database schema, develop integration tests, refine GitHub authentication and authorization safeguards, and improve the deployment experience.&lt;/p&gt;

&lt;p&gt;The objective was to use AI as a development partner while still validating the implementation through tests and real-world repository experiments.&lt;/p&gt;

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

&lt;p&gt;During development, I tested IssuePilot against real-world upstream repositories, including &lt;code&gt;sktime&lt;/code&gt; and &lt;code&gt;aiondemand&lt;/code&gt;, to explore the challenges contributors face when working with forks where GitHub issues are disabled.&lt;/p&gt;

&lt;p&gt;Feedback from an open-source contributor:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Usually, when we fork a large repo to contribute, issues are disabled on GitHub by default, so testing triage tools was impossible. IssuePilot's automatic upstream sync pulled in 88 active issues immediately, accurately flagged two duplicates related to token parsing, and proposed the exact bug and backend labels we would have manually tagged."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This experiment reinforced the central idea behind IssuePilot: maintainers need useful, reviewable suggestions rather than autonomous bots that make unapproved changes.&lt;/p&gt;

&lt;p&gt;The project is still evolving, and this early feedback provides a useful direction for improving its triage accuracy and workflow.&lt;/p&gt;

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

&lt;p&gt;I'm submitting IssuePilot for the following categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; Hacktoberfest Open-Source AI Challenge Week 2 — Side Hustle&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Open-Weight Models:&lt;/strong&gt; Gemma 2&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developer Tools / Productivity Micro-SaaS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open Innovation &amp;amp; Autonomous Agents&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Building IssuePilot taught me that useful AI developer tools are not just about generating predictions. They need reliable integrations, structured outputs, security guardrails, and workflows that keep people in control.&lt;/p&gt;

&lt;p&gt;If you're maintaining an open-source repository, I'd love for you to try IssuePilot and share your feedback!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://issue-pilot-ten.vercel.app/" rel="noopener noreferrer"&gt;https://issue-pilot-ten.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/Issue-pilot" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/Issue-pilot&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My Friend Wanted to Start Gardening, So I Built Her an AI Gardening Companion</title>
      <dc:creator>Saksham Sontakke</dc:creator>
      <pubDate>Sun, 11 Oct 2026 05:56:07 +0000</pubDate>
      <link>https://dev.to/saksham_sontakke_49a68eeb/my-friend-wanted-to-start-gardening-so-i-built-her-an-ai-gardening-companion-5556</link>
      <guid>https://dev.to/saksham_sontakke_49a68eeb/my-friend-wanted-to-start-gardening-so-i-built-her-an-ai-gardening-companion-5556</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;h1&gt;
  
  
  🌱 GrowMate — Your AI Gardening Companion
&lt;/h1&gt;

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

&lt;p&gt;&lt;strong&gt;GrowMate is an AI-powered gardening companion designed to help home and balcony gardeners grow healthier plants while spending less time on screens and more time in nature.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gardening can be challenging for beginners. People often struggle to decide which plants suit their space, understand their plants' needs, or identify potential leaf diseases. GrowMate aims to make these tasks easier through AI-powered guidance and practical outdoor activities.&lt;/p&gt;

&lt;p&gt;The project focuses on three main features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;AI Garden Planner:&lt;/strong&gt; Get personalized plant suggestions and gardening guidance based on your available space, sunlight, and gardening preferences.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Plant Health Scanner:&lt;/strong&gt; Upload a leaf image to receive AI-assisted plant health classification and guidance on possible next steps.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Touch Grass Mode:&lt;/strong&gt; Get practical gardening missions that encourage you to step away from your device, interact with your plants, and build a real-world gardening habit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea behind GrowMate is simple: &lt;strong&gt;AI should help us experience more of the real world, not keep us trapped in front of a screen.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of endlessly researching gardening online, users can get guidance, put their devices aside, and start caring for their plants.&lt;/p&gt;

&lt;p&gt;GrowMate is built for beginners, home gardeners, balcony gardeners, and anyone who wants to develop a greener lifestyle.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://growmate-beta.vercel.app/" rel="noopener noreferrer"&gt;https://growmate-beta.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore GrowMate and see how AI can support practical, real-world gardening.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/CyborgX-hash/Growmate" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/Growmate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project source code is available on GitHub.&lt;/p&gt;

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

&lt;p&gt;I built GrowMate with a focus on combining a modern web application with AI-assisted gardening and practical outdoor activities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technology stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, and Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js and Express.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; MySQL with Prisma ORM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Open-weight language and computer-vision models for gardening assistance and plant health classification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel for the frontend, with backend and AI services configured separately as required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The planned AI components include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 3 4B IT&lt;/strong&gt; for generating gardening guidance, personalized plans, and outdoor missions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PlantVillage ViT leaf-disease classifier&lt;/strong&gt; for AI-assisted classification of uploaded plant leaf images.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to use models with accessible weights and customizable deployment options rather than building the entire experience around a proprietary, closed AI system.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: The model names above describe the intended AI components. Confirm which models are actually integrated and responding in the deployed version before publishing this as a description of the finished implementation.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Open innovation matters because gardening assistance should be adaptable, accessible, and transparent.&lt;/p&gt;

&lt;p&gt;Using models with accessible weights gives developers more control over how AI features are deployed and customized. It also creates opportunities to experiment with different models, choose infrastructure that fits the project's needs, and improve the application without depending entirely on one proprietary AI provider.&lt;/p&gt;

&lt;p&gt;For GrowMate, this approach could make it easier to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Customize gardening recommendations for different environments and growing conditions.&lt;/li&gt;
&lt;li&gt; Replace or upgrade AI models as better options become available.&lt;/li&gt;
&lt;li&gt; Keep API credentials and sensitive processing on the server rather than exposing secrets in the frontend.&lt;/li&gt;
&lt;li&gt; Experiment with different inference providers and deployment approaches.&lt;/li&gt;
&lt;li&gt; Build tools that connect AI assistance with meaningful offline activities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open innovation is especially relevant to the Touch Grass challenge because the AI is intended to act as a guide—not as the destination. The real outcome is a person learning about plants, stepping outdoors, and caring for something in the physical world.&lt;/p&gt;

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

&lt;p&gt;I used an AI-assisted development workflow to help plan and build GrowMate.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Built with 🌱 for a greener, more hands-on world.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My Roommate Sends Chaotic Grocery Messages. So I Built an AI for It.</title>
      <dc:creator>Saksham Sontakke</dc:creator>
      <pubDate>Mon, 05 Oct 2026 08:15:16 +0000</pubDate>
      <link>https://dev.to/saksham_sontakke_49a68eeb/my-roommate-sends-chaotic-grocery-messages-so-i-built-an-ai-for-it-36a9</link>
      <guid>https://dev.to/saksham_sontakke_49a68eeb/my-roommate-sends-chaotic-grocery-messages-so-i-built-an-ai-for-it-36a9</guid>
      <description>&lt;p&gt;What I Built&lt;/p&gt;

&lt;p&gt;MessyList — Turn chaotic grocery messages into a shopping list&lt;/p&gt;

&lt;p&gt;My roommate has a very particular way of asking me to buy groceries.&lt;/p&gt;

&lt;p&gt;It's rarely:&lt;/p&gt;

&lt;p&gt;"Buy 1 packet of milk, 1 brown bread, and 5kg of atta."&lt;/p&gt;

&lt;p&gt;Instead, it looks more like:&lt;/p&gt;

&lt;p&gt;"bhai milk le aana"&lt;br&gt;
"bread bhi"&lt;br&gt;
"brown wali"&lt;br&gt;
"eggs bhi khatam hai"&lt;br&gt;
"actually Rahul eggs la raha"&lt;br&gt;
"atta bhi le aa"&lt;br&gt;
"5kg wala"&lt;/p&gt;

&lt;p&gt;And somehow, I'm supposed to remember all of that while standing in a grocery store. 😭&lt;/p&gt;

&lt;p&gt;So I built MessyList, a personal AI grocery assistant that turns those chaotic conversations into a clean, actionable shopping list.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;Messy messages → AI understands the context → Clean grocery list&lt;/p&gt;

&lt;p&gt;But it isn't just extracting nouns from a message.&lt;/p&gt;

&lt;p&gt;MessyList can understand things like:&lt;/p&gt;

&lt;p&gt;"bread bhi" → add bread&lt;/p&gt;

&lt;p&gt;"brown wali" → understand that it refers to the bread&lt;/p&gt;

&lt;p&gt;"get 5kg atta" → understand quantity and unit&lt;/p&gt;

&lt;p&gt;"actually Rahul is bringing eggs" → remove eggs from the list&lt;/p&gt;

&lt;p&gt;"same milk as last time" → use a saved preference&lt;/p&gt;

&lt;p&gt;corrections and conversational context&lt;/p&gt;

&lt;p&gt;After the AI interprets the conversation, I can review and edit the result before saving it as a shopping list.&lt;/p&gt;

&lt;p&gt;The app also remembers grocery preferences and previous lists, so it can become more useful over time.&lt;/p&gt;

&lt;p&gt;I built this specifically around a real, everyday problem rather than trying to make another generic AI chatbot.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Try MessyList:&lt;br&gt;
&lt;a href="https://grocery-ai-indol.vercel.app/" rel="noopener noreferrer"&gt;https://grocery-ai-indol.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The deployed app includes a demo flow so you can try the idea without having to prepare your own grocery messages.&lt;/p&gt;

&lt;p&gt;A typical flow looks like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Paste the messy messages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;bhai milk le aana&lt;br&gt;
bread bhi&lt;br&gt;
brown wali&lt;br&gt;
eggs khatam hai&lt;br&gt;
actually Rahul eggs la raha&lt;br&gt;
atta bhi 5kg wala&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;MessyList understands them&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Review the AI's interpretation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the shopping list&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check items off while shopping&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The goal was to make the interface simple enough that my roommate could actually use it instead of needing a tutorial.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/CyborgX-hash/Grocery-ai" rel="noopener noreferrer"&gt;https://github.com/CyborgX-hash/Grocery-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the frontend, backend, Prisma database layer, AI integration, and demo mode.&lt;/p&gt;

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

&lt;p&gt;The application is built as a full-stack web application.&lt;/p&gt;

&lt;p&gt;Tech Stack&lt;/p&gt;

&lt;p&gt;React&lt;/p&gt;

&lt;p&gt;Node.js&lt;/p&gt;

&lt;p&gt;Express.js&lt;/p&gt;

&lt;p&gt;Prisma ORM&lt;/p&gt;

&lt;p&gt;Database persistence&lt;/p&gt;

&lt;p&gt;Open-weight AI / Gemma&lt;/p&gt;

&lt;p&gt;Vercel for deployment&lt;/p&gt;

&lt;p&gt;The important part of the architecture is the AI parsing layer.&lt;/p&gt;

&lt;p&gt;The grocery conversation is sent to the AI with relevant context such as saved grocery preferences and previous purchases.&lt;/p&gt;

&lt;p&gt;The model converts the natural language into structured data rather than simply generating a conversational response.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "items": [&lt;br&gt;
    {&lt;br&gt;
      "name": "Brown Bread",&lt;br&gt;
      "quantity": 1,&lt;br&gt;
      "unit": "pack",&lt;br&gt;
      "status": "active"&lt;br&gt;
    },&lt;br&gt;
    {&lt;br&gt;
      "name": "Eggs",&lt;br&gt;
      "status": "cancelled",&lt;br&gt;
      "notes": "Rahul is bringing them"&lt;br&gt;
    },&lt;br&gt;
    {&lt;br&gt;
      "name": "Atta",&lt;br&gt;
      "quantity": 5,&lt;br&gt;
      "unit": "kg",&lt;br&gt;
      "status": "active"&lt;br&gt;
    }&lt;br&gt;
  ]&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;The application then validates that response and lets the user review it before saving anything.&lt;/p&gt;

&lt;p&gt;I also added a development/demo mode so the application can still demonstrate the complete product flow without exposing or hardcoding AI credentials.&lt;/p&gt;

&lt;p&gt;The data layer&lt;/p&gt;

&lt;p&gt;I used Prisma ORM to manage the persistent data layer.&lt;/p&gt;

&lt;p&gt;The application stores things like:&lt;/p&gt;

&lt;p&gt;Grocery lists&lt;/p&gt;

&lt;p&gt;Grocery items&lt;/p&gt;

&lt;p&gt;Purchase status&lt;/p&gt;

&lt;p&gt;Grocery preferences&lt;/p&gt;

&lt;p&gt;Previous shopping history&lt;/p&gt;

&lt;p&gt;This allows the AI to use relevant personal context instead of treating every grocery request as completely independent.&lt;/p&gt;

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

&lt;p&gt;This is probably the most important part of the project for me.&lt;/p&gt;

&lt;p&gt;A grocery list might not sound like sensitive information, but when you start giving an AI access to someone's messages, habits, preferences, purchases, and household information, privacy becomes important.&lt;/p&gt;

&lt;p&gt;I wanted the architecture to be built around an open-weight model rather than making the application completely dependent on a closed AI provider.&lt;/p&gt;

&lt;p&gt;Using an open model such as Gemma gives the project much more flexibility.&lt;/p&gt;

&lt;p&gt;The model can potentially be:&lt;/p&gt;

&lt;p&gt;self-hosted&lt;/p&gt;

&lt;p&gt;swapped for another open model&lt;/p&gt;

&lt;p&gt;adapted for a specific use case&lt;/p&gt;

&lt;p&gt;run in a more private environment&lt;/p&gt;

&lt;p&gt;changed without rebuilding the entire application around one proprietary API&lt;/p&gt;

&lt;p&gt;That matters because the long-term idea behind MessyList isn't just:&lt;/p&gt;

&lt;p&gt;"Send my messages to an AI and get a list."&lt;/p&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;p&gt;"Give me a personal AI tool that I can actually control."&lt;/p&gt;

&lt;p&gt;For a personal assistant dealing with someone's everyday messages and preferences, that distinction matters.&lt;/p&gt;

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

&lt;p&gt;I used an AI-assisted development workflow to build and iterate on the application, from the initial architecture and UI through the AI parsing flow and database integration.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;🏆 Best Use of Gemma&lt;/p&gt;

&lt;p&gt;MessyList is built around an open-weight AI architecture using Gemma for understanding natural-language grocery conversations and converting them into structured grocery data.&lt;/p&gt;

&lt;p&gt;I'm entering the Best Use of Gemma category.&lt;/p&gt;

&lt;p&gt;What's Next?&lt;/p&gt;

&lt;p&gt;MessyList started with one very specific problem: my roommate's chaotic grocery messages.&lt;/p&gt;

&lt;p&gt;But there are a few directions I'd love to take it next:&lt;/p&gt;

&lt;p&gt;Voice messages — turn voice notes into shopping lists.&lt;/p&gt;

&lt;p&gt;WhatsApp integration — automatically process grocery conversations.&lt;/p&gt;

&lt;p&gt;Receipt scanning — update purchase history from receipts.&lt;/p&gt;

&lt;p&gt;Budget mode — build a grocery list around a spending limit.&lt;/p&gt;

&lt;p&gt;Shared household lists — allow multiple roommates to contribute to the same list.&lt;/p&gt;

&lt;p&gt;For now, though, I'm happy that a conversation that normally looks like this:&lt;/p&gt;

&lt;p&gt;"milk le aana"&lt;br&gt;
"bread bhi"&lt;br&gt;
"wait don't get eggs"&lt;br&gt;
"actually get eggs"&lt;/p&gt;

&lt;p&gt;can become something a little more useful:&lt;/p&gt;

&lt;p&gt;☐ Milk&lt;br&gt;
☐ Brown Bread&lt;br&gt;
☐ Atta — 5kg&lt;/p&gt;

&lt;p&gt;And hopefully, a little less chaotic. 😄&lt;/p&gt;

&lt;p&gt;Thanks for checking out MessyList!&lt;/p&gt;

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