Adjust, mute, and remember volume per website.
Chrome · Edge · Firefox · Brave · Opera — Manifest V3, zero dependencies.
Features · Install · How It Works · Architecture · Privacy Policy
- Per-tab volume slider — 0–200% range, boost above 100%
- Volume boost — amplify quiet audio via Web Audio API GainNode
- Mute/unmute — independent of volume level, works at any boost
- Domain memory — volume settings persist per website across sessions
- Dark monochrome UI — clean, minimal, no distractions
- Lightweight — no frameworks, no backend, no telemetry
- Download or clone this repo
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked and select this folder
- Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select
manifest.json
Note: Temporary add-ons are removed when Firefox closes. To keep Volumaster, submit it to Firefox Add-ons.
| Range | Behaviour |
|---|---|
| 0–100% | Standard volume — 0% is silent, 100% is original level |
| 100–200% | Boost — audio is amplified up to 2× via GainNode |
| Mute | Independent toggle — works at any volume including boost |
Volume settings are stored per domain and restored when you return to a site.
manifest.json
src/
background.js Tab tracking, volume commands (service worker)
content-script.js Applies volume to <video>/<audio> elements
lib/
browser-compat.js Cross-browser scripting API wrapper
volume.js Volume mapping (0–200 → 0–2× gain)
storage.js Session + sync storage with fallbacks
throttle.js Utilities (throttle, extractDomain, truncate)
services/
tab-tracker.js Tab state via chrome.storage.session
media-detector.js Detects media elements via scripting.executeScript
profiles.js Per-domain volume memory via sync storage
popup/
popup.html Popup UI
popup.css Monochrome dark theme
popup.js Popup logic and rendering
icons/
icon.svg Source logo
icon-{16,32,48,128}.png Extension icons
docs/
screenshot.png Extension preview
| Permission | Reason |
|---|---|
activeTab |
Detect current tab for volume changes |
tabs |
Read tab info (title, URL domain) for the popup |
storage |
Save volume settings per domain |
scripting |
Inject volume control into pages |
<all_urls> |
Apply volume control on any page with media |
No data is collected, transmitted, or shared. See Privacy Policy.
