Merge pull request #34 from outis1one/claude/read-repo-wA3y1

Claude/read repo w a3y1
This commit is contained in:
Outis
2026-03-27 19:28:44 -04:00
committed by GitHub
6 changed files with 19 additions and 11 deletions
+9 -6
View File
@@ -8,19 +8,22 @@ A browser extension (Chrome, Firefox, and Safari) that intercepts personal infor
|---------|---------|--------|
| Claude | claude.ai, claude.ai/code | Tested |
| ChatGPT | chatgpt.com, chat.openai.com | Tested |
| Copilot | copilot.microsoft.com | Untested |
| Grok | grok.x.ai, x.com/i/grok | Untested |
| Gemini | gemini.google.com | Untested |
| OpenWebUI | localhost, 127.0.0.1, or custom domain | Untested |
> **Note:** Only Claude has been tested so far. The other services have API interception patterns defined but may need adjustments. PRs welcome.
> **Browsers:** Chrome, Edge, Brave, Firefox, and Safari. Edge and Brave use the Chrome extension directly.
>
> **Browsers:** Chrome, Firefox (signed .xpi), and Safari (via Xcode project). All three use the same core code.
> **Desktop apps** (Claude, ChatGPT, Copilot) bypass the browser — use the web version with the extension for PPI protection.
>
> **Note:** Claude and ChatGPT are tested. Other services have interception patterns defined but may need adjustments. PRs welcome.
## How it works
1. **You fill in your Identity** — name, email, username, computer name, phone
2. **Smart patterns auto-catch variations**`jsmith@macbook-pro`, `John's`, `/home/jsmith`, `555.123.4567`
3. **Secret scanner auto-redacts credentials** — API keys, tokens, passwords, SSNs, credit cards (zero config)
3. **Auto-redacts credentials** — API keys, tokens, passwords, SSNs, credit cards (zero config)
4. **You type normally** — you see your real text while composing
5. **On send, it swaps** — the extension intercepts the API request and replaces real values with substitutes
6. **Badge shows count** — the extension icon shows how many substitutions were made
@@ -47,7 +50,7 @@ A browser extension (Chrome, Firefox, and Safari) that intercepts personal infor
| `john_smith` | `alex_demo` |
| `smith-john` | `demo-alex` |
### Secret scanner (automatic, no configuration needed)
### Auto-redact (automatic, no configuration needed)
| You type | What gets sent |
|----------|---------------|
@@ -382,7 +385,7 @@ src/
lib/
substitution-engine.js — Core explicit find/replace logic
smart-patterns.js — Auto-detection of emails, names, usernames, hostnames, phones, paths
secret-scanner.js — Auto-detection of API keys, tokens, passwords, SSNs, credit cards
secret-scanner.js — Auto-redact API keys, tokens, passwords, SSNs, credit cards
crypto.js — AES-256-GCM encryption, PBKDF2 key derivation, TOTP (RFC 6238), WebAuthn, key caching
sync.js — Cross-browser sync with encryption (browser sync, Gist, folder, URL, sync codes)
storage.js — Browser storage wrapper with transparent at-rest encryption
@@ -546,7 +549,7 @@ Silent Send works well for text you type and most document uploads, but some thi
- **Names inside other words** — if your name is "Art", it won't catch "article" (word boundaries prevent most false positives, but edge cases exist).
- **Data you haven't configured** — it can only substitute what you told it about, plus known secret formats. Your home address or employer name won't be caught unless you add them.
- **Short names** — names under 3 characters are skipped for usernames/hostnames to avoid false positives.
- **Custom secret formats** — the secret scanner knows common API key prefixes (sk-, ghp_, AKIA, etc.) but won't catch proprietary token formats your company uses.
- **Custom secret formats** — the auto-redactor knows common API key prefixes (sk-, ghp_, AKIA, etc.) but won't catch proprietary token formats your company uses.
**Think of it like a spell checker for privacy** — it catches most things, but you should still glance at sensitive messages before sending.
+2
View File
@@ -20,6 +20,7 @@
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://copilot.microsoft.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
@@ -47,6 +48,7 @@
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://copilot.microsoft.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
+2
View File
@@ -14,6 +14,7 @@
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://copilot.microsoft.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
@@ -41,6 +42,7 @@
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://copilot.microsoft.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
+1
View File
@@ -25,6 +25,7 @@ const BUILTIN_URL_PATTERNS = [
'https://claude.ai/*',
'https://chatgpt.com/*',
'https://chat.openai.com/*',
'https://copilot.microsoft.com/*',
'https://grok.x.ai/*',
'https://x.com/i/grok*',
'https://gemini.google.com/*',
+3 -3
View File
@@ -49,8 +49,8 @@
</div>
<div class="setting-row">
<div>
<label>Secret scanning</label>
<p class="setting-desc">Auto-detect and redact API keys, tokens, passwords, SSNs, credit card numbers</p>
<label>Auto-redact secrets</label>
<p class="setting-desc">Automatically redact API keys, tokens, passwords, SSNs, credit card numbers</p>
</div>
<label class="toggle">
<input type="checkbox" id="secretScanning" checked>
@@ -361,7 +361,7 @@
<!-- Organization -->
<section class="section">
<h2>Organization</h2>
<p class="section-desc">Join an organization to receive required substitution rules and secret scanner patterns from your admin. Org rules merge with your personal rules and cannot be disabled.</p>
<p class="section-desc">Join an organization to receive required substitution rules and auto-redact patterns from your admin. Org rules merge with your personal rules and cannot be disabled.</p>
<div id="orgNotJoined">
<div style="display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px">
+2 -2
View File
@@ -198,8 +198,8 @@
<section class="tab-content" id="tab-options">
<div class="setting-item">
<div class="setting-label">
<strong>Secret scanning</strong>
<span class="setting-desc">Auto-redact API keys, tokens, passwords, SSNs, credit cards</span>
<strong>Auto-redact secrets</strong>
<span class="setting-desc">Automatically redact API keys, tokens, passwords, SSNs, credit cards</span>
</div>
<label class="toggle"><input type="checkbox" id="optSecretScanning" checked><span class="toggle-slider"></span></label>
</div>