<?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: Srini Ananthakrishnan</title>
    <description>The latest articles on DEV Community by Srini Ananthakrishnan (@srianant).</description>
    <link>https://dev.to/srianant</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%2F3840628%2F8006a515-c84c-4b4b-92d6-08becb9bead5.jpg</url>
      <title>DEV Community: Srini Ananthakrishnan</title>
      <link>https://dev.to/srianant</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/srianant"/>
    <language>en</language>
    <item>
      <title>OpenObscure – open-source, on-device privacy firewall for AI agents</title>
      <dc:creator>Srini Ananthakrishnan</dc:creator>
      <pubDate>Mon, 23 Mar 2026 18:06:25 +0000</pubDate>
      <link>https://dev.to/srianant/openobscure-open-source-on-device-privacy-firewall-for-ai-agents-2gk6</link>
      <guid>https://dev.to/srianant/openobscure-open-source-on-device-privacy-firewall-for-ai-agents-2gk6</guid>
      <description>&lt;p&gt;&lt;strong&gt;OpenObscure&lt;/strong&gt; - an open-source, &lt;strong&gt;on-device privacy firewall for AI agents&lt;/strong&gt; that sits between your AI agent and the LLM provider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it with OpenClaw&lt;/strong&gt;: &lt;a href="https://github.com/OpenObscure/OpenObscure/blob/main/setup/gateway_setup.md" rel="noopener noreferrer"&gt;https://github.com/OpenObscure/OpenObscure/blob/main/setup/gateway_setup.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The problem with [REDACTED]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most tools redact PII by replacing it with a placeholder. This works for compliance theater but breaks the LLM: it can't reason about the structure of a credit card number or SSN it can't see. You get garbled outputs or your agent has to work around the gaps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What OpenObscure does instead&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It uses FF1 Format-Preserving Encryption (AES-256) to encrypt PII values before the request leaves your device. The LLM receives a realistic-looking ciphertext — same format, fake values. On the response side, values are automatically decrypted before your agent sees them. One-line integration: change &lt;code&gt;base_url&lt;/code&gt; to the local proxy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's in the box&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;PII detection: regex + CRF + TinyBERT NER ensemble, 99.7% recall, 15+ types&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FF1/AES-256 FPE — key in OS keychain, nothing transmitted&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cognitive firewall: scans every LLM response for persuasion techniques across 7 categories (250-phrase dict + TinyBERT cascade) — aligns with EU AI Act Article 5 requirements on prohibited manipulation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Image pipeline: face redaction (SCRFD + BlazeFace), OCR text scrubbing, NSFW filter&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Voice: keyword spotting in transcripts for PII trigger phrases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rust core, runs as Gateway sidecar (macOS/Linux/Windows) or embedded in iOS/Android via UniFFI Swift/Kotlin bindings&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auto hardware tier detection (Full/Standard/Lite) depending on device capabilities&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MIT / Apache-2.0. No telemetry. No cloud dependency.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/openobscure/openobscure" rel="noopener noreferrer"&gt;https://github.com/openobscure/openobscure&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo: &lt;a href="https://youtu.be/wVy_6CIHT7A" rel="noopener noreferrer"&gt;https://youtu.be/wVy_6CIHT7A&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Site: &lt;a href="https://openobscure.ai" rel="noopener noreferrer"&gt;https://openobscure.ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>privacy</category>
      <category>opensource</category>
      <category>openclaw</category>
    </item>
  </channel>
</rss>
