A privacy-first browser utility that intercepts and obfuscates PII directly in your browser—on your device only.
Jabberwocky is a browser privacy extension. It intercepts and scrambles your personal data before it ever leaves your computer—no cloud, no trackers, no leaks.
This project was made for the Lovable AI Showdown!
Run the demo locally:
(The “demo” is the local app UI. For real intercept support, see the integration section below).
- Follow the install and run steps below. This demo works locally and demonstrates the UI and logs.
- Note: The real thing (live PII interception) also requires integration with
snifferjs, as described further below!
- Click Code (top right) and choose “Download ZIP”.
- Unzip it anywhere.
- Best: Open this folder in Visual Studio Code.
- Or, open a terminal window there and run:
npm install
- In VSCode: click “Run and Debug” or
- In terminal:
npm run dev
- Open http://localhost:5173 in your browser.
Here’s a preview of Jabberwocky in action:
- About
- Screenshots
- Quick Start
- Install and Integrate
snifferjs - Making a Browser Extension
- Troubleshooting & FAQ
- Credits & License
Give your app real PII protection:
npm install snifferjs- Create
src/lib/snifferjs.ts:import snifferjs from "snifferjs"; snifferjs.patchAll();
- At the VERY TOP of
src/main.tsx:
import "./lib/snifferjs";
Done! Now every session is protected.
Want Jabberwocky as a Chrome/Edge extension?
Follow these steps for a smooth install:
In your project directory, run:
npm run buildThis will generate a /dist folder containing everything Chrome needs.
In your project root folder, create a file called manifest.json (not inside src):
{
"manifest_version": 3,
"name": "Jabberwocky",
"version": "1.0.0",
"description": "A privacy tool to intercept and shield PII.",
"permissions": ["activeTab", "storage", "scripting"],
"action": {
"default_popup": "index.html",
"default_icon": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"background": {
"service_worker": "background.js"
},
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
}Create content.js in /dist (or copy and edit from your Vite build outputs):
import snifferjs from "snifferjs";
snifferjs.patchAll();Tip: You can also bundle this logic with your Vite build pipeline if you're advanced.
- Place your icon images (icon16.png, icon48.png, icon128.png) inside a new
/dist/images/directory. - Update their references in
manifest.jsonabove if they differ.
- Open Chrome and go to
chrome://extensions/. - Turn ON Developer mode (toggle in top right).
- Click Load unpacked.
- Select your
/distfolder (after it contains all the files above). - Jabberwocky should now appear in your extensions list! Click its puzzle piece icon to run.
Common Issues/Tips:
- Make sure you select the built
/distfolder, not/srcor root. - If icons or popups don't appear, double-check file locations and manifest paths.
- If you update the code, rebuild (
npm run build) and re-load the extension.
- snifferjs not active?
Check the browser console for errors; confirm extension steps. ChatGPT can help with the rest! - Afraid of the terminal?
Use VSCode or GitHub Desktop to install/run things with click buttons!
- Author: Sam Krystal
- Built with Lovable
- Uses snifferjs for advanced PII interception
- Icons: lucide.dev
- License: MIT
I work at Confident Security—we build provably private AI.
If you've got a popular AI model, lots of compute, and care about your users, give me a holler!
Follow us for privacy news and updates:
👉 @confident_sec on Twitter/X




