<?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: Padmanshu Pare</title>
    <description>The latest articles on DEV Community by Padmanshu Pare (@padmanshu_pare_373c9cecde).</description>
    <link>https://dev.to/padmanshu_pare_373c9cecde</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%2F3780029%2Fdd9d6bb3-d897-4852-b9b7-6c98b5297908.jpg</url>
      <title>DEV Community: Padmanshu Pare</title>
      <link>https://dev.to/padmanshu_pare_373c9cecde</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/padmanshu_pare_373c9cecde"/>
    <language>en</language>
    <item>
      <title>GhostShell: Your Terminal Has a Soul - and It’s Here to Protect You</title>
      <dc:creator>Padmanshu Pare</dc:creator>
      <pubDate>Fri, 30 Oct 2026 17:22:05 +0000</pubDate>
      <link>https://dev.to/padmanshu_pare_373c9cecde/ghostshell-your-terminal-has-a-soul-and-its-here-to-protect-you-gpo</link>
      <guid>https://dev.to/padmanshu_pare_373c9cecde/ghostshell-your-terminal-has-a-soul-and-its-here-to-protect-you-gpo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  GhostShell: Your Terminal Has a Soul—and It’s Here to Protect You
&lt;/h1&gt;

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

&lt;p&gt;GhostShell is a local-first AI terminal companion with a ghostly personality and a practical job: help developers understand what happened when a command fails, and make risky commands harder to run by accident.&lt;/p&gt;

&lt;p&gt;I interpreted “Ghost in the Machine” as a presence in the place developers spend so much time: the terminal. But this ghost isn’t just there to narrate errors. GhostGuard checks commands &lt;strong&gt;before&lt;/strong&gt; they reach the runner. It classifies risk deterministically, asks for a fresh approval before supported caution-level commands, and blocks dangerous commands by default. AI can explain an error, but it cannot approve or execute a command.&lt;/p&gt;

&lt;p&gt;The local CLI supports a deliberately limited set of workflows rather than pretending to replace PowerShell, Bash, or CMD. It also keeps redacted session history in local SQLite. The React demo shows three clearly labeled simulations—a dangerous deletion command, a port conflict, and a missing dependency. Those scenarios are browser-only; the public demo has no connection to a real shell.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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/padmanshu-pare" rel="noopener noreferrer"&gt;
        padmanshu-pare
      &lt;/a&gt; / &lt;a href="https://github.com/padmanshu-pare/GhostShell" rel="noopener noreferrer"&gt;
        GhostShell
      &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;GhostShell&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your terminal has a soul. And this time, it's here to protect you.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GhostShell is a local-first AI developer safety companion. It reviews a deliberately small set of terminal commands, blocks dangerous operations, requires a fresh human approval for caution-level work, and can investigate command errors with Gemma running locally through Ollama.&lt;/p&gt;
&lt;p&gt;GhostShell is a working MVP, not a PowerShell, CMD, or Bash replacement. The public website is a separate, static product demo: its scenarios are simulated in the browser and cannot execute commands.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why GhostShell?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Developer assistants often need command output to help diagnose a failure. Sending that evidence to a hosted model can expose private project details. GhostShell keeps the actual runner, history, and optional AI analysis on the developer's machine. Deterministic GhostGuard rules remain active when Ollama is unavailable, and a model can explain an error but cannot authorize or run a command.&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;Interactive Rich…&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/padmanshu-pare/GhostShell" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&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/padmanshu-pare" rel="noopener noreferrer"&gt;
        padmanshu-pare
      &lt;/a&gt; / &lt;a href="https://github.com/padmanshu-pare/GhostShell" rel="noopener noreferrer"&gt;
        GhostShell
      &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;GhostShell&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your terminal has a soul. And this time, it's here to protect you.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GhostShell is a local-first AI developer safety companion. It reviews a deliberately small set of terminal commands, blocks dangerous operations, requires a fresh human approval for caution-level work, and can investigate command errors with Gemma running locally through Ollama.&lt;/p&gt;
&lt;p&gt;GhostShell is a working MVP, not a PowerShell, CMD, or Bash replacement. The public website is a separate, static product demo: its scenarios are simulated in the browser and cannot execute commands.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why GhostShell?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Developer assistants often need command output to help diagnose a failure. Sending that evidence to a hosted model can expose private project details. GhostShell keeps the actual runner, history, and optional AI analysis on the developer's machine. Deterministic GhostGuard rules remain active when Ollama is unavailable, and a model can explain an error but cannot authorize or run a command.&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;Interactive Rich…&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/padmanshu-pare/GhostShell" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;GhostShell is built in Python, with a FastAPI informational API, SQLite storage, and a React/Vite frontend. The local AI integration uses &lt;strong&gt;Gemma 3 1B through Ollama&lt;/strong&gt;. The model is intended to analyze bounded, redacted command output and offer troubleshooting explanations. If Ollama or the model is unavailable, GhostGuard and the CLI can still work without AI.&lt;/p&gt;

&lt;p&gt;The important design decision was to keep AI out of the security decision loop. Deterministic rules classify commands, approvals are tied to the exact command and working directory, and the runner only accepts a small allowlist. Processes use argument lists and &lt;code&gt;shell=False&lt;/code&gt;, with timeouts and bounded output. The public demo uses fixed scenarios and does not execute commands.&lt;/p&gt;

&lt;p&gt;I implemented and tested the Ollama integration, but couldn’t verify live Gemma inference in this environment because Ollama wasn’t installed. The project reports that clearly rather than pretending the model is ready. The Python suite passes &lt;strong&gt;28 tests&lt;/strong&gt;, and the frontend production build succeeds.&lt;/p&gt;

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

&lt;p&gt;Open-weight models and local runtimes make it possible to put AI closer to sensitive developer workflows without requiring command output to go to a hosted AI provider. After the model is downloaded, local inference can also work without an internet connection, depending on the machine and runtime.&lt;/p&gt;

&lt;p&gt;Just as importantly, an open project makes the boundaries inspectable: developers can see what the runner supports, how risk is classified, what gets sent to the model, and where the limitations are. GhostShell is designed to work without a paid AI API—and without silently falling back to one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;I wanted the ghost to feel less like another chatbot and more like a careful presence at your shoulder: the one that says, “Wait—are you sure?” before an irreversible command, and stays to help investigate when something breaks.&lt;/p&gt;

&lt;p&gt;The spooky part is the storytelling. The protective part is the engineering.&lt;/p&gt;

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

&lt;p&gt;No partner-specific prize category claimed. GhostShell uses Gemma through Ollama and does not claim use of partner technologies.&lt;/p&gt;

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