<?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: Raihan Kabir</title>
    <description>The latest articles on DEV Community by Raihan Kabir (@raaihank).</description>
    <link>https://dev.to/raaihank</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3472327%2F3e5a05a8-8fcc-45ce-8eea-b5378a974762.png</url>
      <title>DEV Community: Raihan Kabir</title>
      <link>https://dev.to/raaihank</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raaihank"/>
    <language>en</language>
    <item>
      <title>LLM-Sentinel: Shield your AI calls from leaking secrets</title>
      <dc:creator>Raihan Kabir</dc:creator>
      <pubDate>Mon, 01 Sep 2025 06:26:02 +0000</pubDate>
      <link>https://dev.to/raaihank/llm-sentinel-shield-your-ai-calls-from-leaking-secrets-39k4</link>
      <guid>https://dev.to/raaihank/llm-sentinel-shield-your-ai-calls-from-leaking-secrets-39k4</guid>
      <description>&lt;p&gt;Every day, API keys, tokens, emails, and DB URLs slip into prompts, logs, or demos. Once they hit the LLM, they’re out of your control.&lt;/p&gt;

&lt;p&gt;I built LLM-Sentinel, a privacy-first proxy that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Intercepts requests to OpenAI, Ollama, Claude, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Masks 52 types of sensitive data (API keys, creds, emails, credit cards, SSNs).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Works with streaming, adds no noticeable latency (1-3ms).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comes with a real-time dashboard to watch what’s being masked.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Zero data retention. All secrets stay local.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2F3hpc9hsw0qttds42vmxi.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.amazonaws.com%2Fuploads%2Farticles%2F3hpc9hsw0qttds42vmxi.png" alt="LLM Sentinel Architecture" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How it works:&lt;br&gt;
Swap your SDK base URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sk-...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:5050/openai/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Input: My AWS key is AKIA... and email user@company.com
# Model sees: My AWS key is [AWS_ACCESS_KEY_MASKED] and email [EMAIL_MASKED].
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; llm-sentinel

llmsentinel &lt;span class="nb"&gt;help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or run via Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull raaihank/llm-sentinel:latest

docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 5050:5050 raaihank/llm-sentinel:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://www.github.com/raaihank/llm-sentinel" rel="noopener noreferrer"&gt;github.com/raaihank/llm-sentinel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback and contributions welcome. If you find this useful, drop a ⭐ on GitHub.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
