Hush your tabs.
A Chrome extension that masks tab titles, favicons, and audio while you're screen sharing, recording, presenting, or focusing — with zero data ever leaving your machine.
When you screen share, your browser tab strip leaks everything — that YouTube video, your personal Gmail, the Discord channel, the Netflix tab you forgot was open. Tab audio leaks too: the little speaker icon broadcasts exactly what you're doing.
TabHush rewrites tab titles and favicons to neutral, professional-looking ones in real time, and auto-mutes audible tabs while privacy is on. One toggle. One shortcut. Zero data leaves your machine.
| 🔒 | One-click privacy toggle — popup button or global keyboard shortcut |
| 🎭 | Tab title & favicon masking that survives SPA navigation and page reloads |
| 🔇 | Auto-mute audible tabs while privacy is on (hides the speaker icon) |
| 🖥️ | Screen Share Mode — aggressive re-apply + optional global page blur |
| 🚨 | Panic Mode — instantly switch to a safe-looking workspace |
| 🌫️ | Page blur — hide page content with a single click |
| 🙈 | Smart per-site content hiding for YouTube, Gmail, WhatsApp Web, Discord, X/Twitter, Reddit |
| 👤 | Profiles — Neutral, Work, Study + fully custom |
| 🎯 | Per-site rules engine with priority + conflict detection |
| 💾 | Import / export your settings as JSON |
| 🤝 | Auto-enable on meetings — Meet, Zoom, Teams, Slack, Discord |
| 🛡️ | 100% local — no telemetry, no network calls, no analytics |
| Action | Linux / Windows | macOS |
|---|---|---|
| Toggle privacy ON/OFF | Ctrl + Shift + X |
⌘ Shift X |
| Toggle Screen Share Mode | Ctrl + Shift + S |
⌘ Shift S |
| Panic Mode | Ctrl + Shift + P |
⌘ Shift P |
Shortcuts can be rebound at
chrome://extensions/shortcuts.
Coming soon.
git clone https://github.com/<your-username>/tabhush.git
cd tabhush- Open
chrome://extensionsin Chrome, Brave, Edge, or any Chromium browser. - Enable Developer mode (toggle in the top-right corner).
- Click Load unpacked and select the project folder.
- Pin the TabHush icon to your toolbar.
- Chromium-based browser version 102 or newer (Chrome, Edge, Brave, Opera, Arc, Vivaldi).
- Click the TabHush icon in your toolbar — privacy is ON by default.
- Visit any site in the default rules list (YouTube, Gmail, Discord, etc.) — title and favicon are now masked.
- Press
Ctrl+Shift+Sbefore screen sharing to activate Screen Share Mode (faster re-apply + optional blur). - Open Settings to add custom rules, create profiles, or configure Panic Mode.
tabhush/
├── manifest.json
├── src/
│ ├── background/index.js # service worker · commands · message router · mute sync
│ ├── content/content.js # title + favicon masking · blur · observers
│ ├── lib/
│ │ ├── defaults.js # default profiles, rules, and settings
│ │ ├── rules.js # URL match · rule resolver · conflict detection
│ │ └── storage.js # chrome.storage.local wrapper + migrations
│ ├── popup/ # toolbar popup UI
│ ├── options/ # full settings page
│ ├── fake-workspace/ # neutral local pages for Panic Mode
│ └── assets/
│ ├── icons/ # extension action icons (16 · 48 · 128 px)
│ └── favicons/ # neutral replacement favicons
├── tests/ # Node --test unit tests
├── PRIVACY.md
├── STORE_LISTING.md
├── CHANGELOG.md
└── LICENSE
| Layer | Responsibility |
|---|---|
Service worker background/index.js |
Owns state, routes messages, handles keyboard commands, syncs tab mute state, broadcasts re-apply on every state change. |
Content script content/content.js |
Runs at document_start. Captures the real title/favicon, traps document.title setter, watches <head> with a MutationObserver, re-applies the mask on a fallback interval. |
Rules engine lib/rules.js |
Chrome match-pattern URL matcher with subdomain wildcard semantics, priority + specificity tie-breaking, and conflict detection. |
Storage lib/storage.js |
Versioned wrapper around chrome.storage.local. Deep-backfills nested defaults on upgrade and transparently migrates legacy storage keys. |
npm testRuns the built-in Node --test suite covering URL matching, rule resolution, effective-mask computation, and conflict detection.
✔ 11 tests passed
✘ 0 failed
TabHush runs entirely on your device. It does not collect, transmit, sell, or share any personal data, browsing history, or telemetry of any kind. It makes zero network requests.
→ Full policy: PRIVACY.md
Bug reports, feature requests, and pull requests are welcome.
- Fork the repo and create a feature branch:
git checkout -b feat/my-feature - Run
npm test— make sure everything still passes. - Open a pull request with a clear description of the change.
For larger changes, please open an issue first to discuss the design.
TabHush is intended for legitimate privacy during screen sharing, recordings, presentations, and focus sessions. It is not a tool to deceive employers, teachers, or supervisors, or to bypass authorized monitoring or compliance policies. Use responsibly.
See CHANGELOG.md.
MIT © 2026 TabHush contributors.