You're in a Google Meet call. You've stepped away from the Meet tab to check a doc, answer a Slack message or look up the number someone just asked for.
Then the dog starts barking. Or a delivery driver rings the bell. Or someone says "sorry, could you repeat that?" and you realize you're the one they're waiting on.
So you start the scramble. Ctrl+Tab, Ctrl+Tab, Ctrl+Tab through twenty-something tabs, looking for the Meet window while everyone in the call hears everything.
I did that scramble every day, sometimes several times in one meeting. Eventually I stopped trying to get faster at it and built a tool so I didn't have to do it at all.
It's called MeetMute, and it lets you mute Google Meet from any tab.
The problem is bigger than one button
Google Meet's controls are good, as long as you're looking at the Meet tab. But most of us aren't, for most of the call. We're taking notes, pulling up a dashboard, reviewing a pull request, or quietly clearing an inbox during a status meeting we didn't need to attend.
That causes two kinds of awkward moments:
- The hot mic. You think you're muted, you aren't, and the whole team hears your side conversation, keyboard or coffee machine.
- The silent speaker. You're asked a question, start answering, and find out ten seconds later that you were talking to nobody.
Both come down to one fact: your mic's state is hidden in a tab you're not looking at.
MeetMute brings that state to wherever you are, and lets you change it from there.
What MeetMute does
🎙️ A floating mic button on every tab
During a call, a small button appears in the corner of whatever tab you're on: Google Docs, GitHub, Gmail, anything. Red means muted, green means live. Click it to toggle. You can drag it to any edge of the screen, and it remembers where you put it.
Hover over it to reveal more: camera on/off, jump back to the call, and an optional leave call button.
⌨️ One keyboard shortcut, from anywhere
Press Ctrl+Space on Windows, Linux and ChromeOS, or ⌥M on Mac, to mute or unmute without touching the mouse or leaving the tab you're in. You can change the shortcut to any key combination you like.
📻 Push-to-talk
For noisy rooms or people who prefer to stay muted by default: turn on push-to-talk, then hold the button or shortcut to speak and release it to mute again, like a walkie-talkie.
🚪 Join every meeting muted
Turn on auto-mute and/or auto camera-off, and every meeting starts the way you want. If you unmute yourself in the waiting room, MeetMute respects that and doesn't mute you again.
🔥 Hot-mic alerts
Left unmuted in a call after switching to another tab? After a delay you choose, MeetMute sends a desktop notification with a one-click Mute button, and the floating button pulses to get your attention.
🧭 A control panel in your toolbar
Click the MeetMute icon during a call for a compact control panel: mic, camera, stop screen sharing, go to the call, and leave. The icon's color shows your mic state at a glance, even if you've turned the floating button off.
🙈 Out of the way when you want it to be
Not everyone wants a button on screen all the time, so you choose:
- Always show it during calls
- Only while unmuted, so it appears only when your mic is live
- Off, and use the shortcut and toolbar icon instead
You can also hide it on specific sites, or just for the current call. Every hide comes with an Undo.
Who it's for
- Remote and hybrid workers who keep a meeting running in the background while they actually work
- Developers who share a screen, then need to mute from inside their editor or terminal tab
- Teachers and students juggling slides, a class chat and a Meet call at the same time
- Managers who go from one meeting to the next and never want to be the hot mic again
- Anyone in a noisy home: kids, pets, construction next door
How it works (for the curious)
Since this is dev.to, here's a quick look at how it's built.
MeetMute is a Manifest V3 Chrome extension written in TypeScript with WXT, a framework I'd recommend to anyone building extensions. It handles manifest generation, hot reload and cross-browser builds, so I could focus on the product.
There are three main parts:
background (service worker) → the hub: tracks calls, mute state, shortcuts
Meet content script → reads and controls the mic/camera on meet.google.com
Floating-button script → draws the floating button on your other tabs
A few design decisions shaped it:
- No Meet API, so it reads the page. Google Meet doesn't offer a public API for mic state, so MeetMute reads the state from Meet's own mic and camera buttons and clicks those same buttons to toggle them. Every change goes through Meet's normal controls.
- Shadow DOM isolation. The floating button lives in a shadow root, so no website's CSS can break it, and it can't break any website's layout.
-
Optional permissions. MeetMute only needs access to
meet.google.comto work. Access to other sites, needed for the floating button there, is optional and requested when you turn that feature on. Without it, the shortcut and toolbar panel still work everywhere. - Multiple calls. If you have more than one Meet call open, MeetMute follows the one you're focused on and warns you that several are open.
Building an extension that controls another company's web app taught me a lot about timing, keyboard shortcuts on different operating systems, and Manifest V3 service workers. I'll save those stories for a follow-up post. Tell me in the comments if you'd like it.
Get started in 30 seconds
- Add MeetMute to Chrome. It's free and needs no account.
- Join any Google Meet call.
- Switch to another tab and press Ctrl+Space (or ⌥M on Mac).
That's the whole setup. Auto-mute, push-to-talk and the rest are one click away in the toolbar icon whenever you want them.
MeetMute is available in 20 languages and works on Windows, macOS, Linux and ChromeOS.
I'd love your feedback
MeetMute is a solo project, and almost every recent improvement came directly from user feedback. The visibility options, the Mac shortcut and the toolbar control panel all exist because someone told me what wasn't working for them.
So I'd really like to know:
- What's your most embarrassing "I thought I was muted" moment? 😅
- Which feature would make this a must-have for you?
Leave a comment below. And if MeetMute saves you from a hot mic, a quick review on the Chrome Web Store helps other people find it.
Thanks for reading, and happy (muted) meetings! 🎧

Top comments (0)