NullOrigin is an open-source local proxy that intercepts and neutralizes AI watermarks and provenance metadata in transit. Simply point your OpenAI, Anthropic, or Gemini SDKs to localhost. NullOrigin pipes streaming text through a local SLM (via Ollama) to mathematically destroy statistical watermarks like KGW on the fly. It also strips C2PA/EXIF metadata from images and scans generated code for Trojan Source vulnerabilities. Built for researchers and privacy-focused developers.
Fin Startups get Fin free for a year + 93% off Intercom
Promoted
Maker
📌
Hey Product Hunt! 👋 I’m excited to share NullOrigin with you today.
As AI platforms increasingly embed invisible watermarks, statistical token trackers, and C2PA metadata into their outputs, I wanted a way to evaluate and neutralize these provenance signals locally. So, I built NullOrigin.
🛡️ What is it?
It’s an open-source, local reverse proxy. You simply point your standard OpenAI, Anthropic, or Gemini SDKs to localhost:8080.
⚙️ How it works:
When it intercepts a text stream, it pipes the payload through a local SLM (like Llama 3.2 via Ollama). Because your local model lacks the upstream vendor's specific cryptographic seed, the span-constrained paraphrasing mathematically resets the token distribution, destroying statistical watermarks (like KGW) on the fly.
It also:
Strips signed C2PA and EXIF metadata from multimodal images.
Purges zero-width characters and cross-script homoglyphs.
Scans generated code for Trojan Source vulnerabilities (CVE-2021-42574).
🔬 Why I built it:
Watermarking schemes are security claims, and security claims are only meaningful once they are tested. NullOrigin is released as an Apache-2.0 research artifact to help developers and academics measure actual robustness. (I am completely transparent about its mathematical limitations in the README—no snake oil here!)
I’d love to hear your thoughts, answer any questions about the architecture (especially the fun challenge of intercepting and rewriting SSE streaming chunks in transit), and get your feedback.
Check out the GitHub repo and let me know what you think!