Merge pull request #34 from outis1one/claude/read-repo-wA3y1
Claude/read repo w a3y1
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
@@ -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/*",
|
||||
|
||||
@@ -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/*",
|
||||
|
||||
@@ -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/*',
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user