Browser extension · Manifest V3

All your Gmail inboxes, one click away.

Juggling a personal, a work and a side-project account? Multi Inbox shows unread mail from every Gmail account in a single popup, with a combined badge and desktop notifications — without asking for a single password.

  • Vanilla JavaScript
  • Zero dependencies
  • No build step
  • No backend
  • Brave · Chrome · Edge
Toolbar popup

Live demo: the real extension code running on sample data. Click an account to expand it.

What it does

A small tool for a common annoyance: Gmail only shows one account at a time, so mail in the others goes unnoticed.

📬

Every inbox at a glance

One list with each account's label, color and unread count. Expand an account to see sender, subject and preview of its latest unread mail.

🔴

Combined badge

The toolbar icon shows the total unread count across all accounts, and a "!" if one of them needs you to sign in again.

🔔

New mail notifications

A desktop notification when something new arrives, grouped per account. Click it to jump straight to the conversation.

↗️

Opens the right account

"Open", "Compose" and every message link land in the correct account, instead of whichever one Gmail considers the default.

⚙️

Simple setup

Add an address, give it a label and a color, reorder the list. A "Check" button confirms each account is reachable.

🔒

Private by design

No passwords, no tokens, no servers. Mail data never leaves your browser.

How it works

Instead of the Gmail API, which needs an OAuth app and Google's security review, the extension reads Gmail's built-in Atom feed using the sessions you are already signed in to.

chrome.alarms every 1–30 min Service worker fetch · parse · diff gmail.js mail.google.com /feed/atom?authuser=… chrome.storage settings · cache · seen ids Badge Notifications Popup
  1. An alarm wakes the service worker at the interval you choose (Manifest V3 workers don't stay alive, so polling uses chrome.alarms).
  2. One feed request per account, in parallel, to mail.google.com/mail/feed/atom?authuser=<address>. The browser attaches your existing Google cookies.
  3. The response is verified: if an account isn't signed in, Google may answer for a different one, so the feed title is checked against the expected address.
  4. XML is parsed without a DOM (service workers have no DOMParser) into sender, subject, snippet, date and link.
  5. New messages are detected by diffing ids against the previous check; the first check of an account never notifies, to avoid a burst.
  6. Badge, notifications and cache are updated. The popup renders the cache instantly, then refreshes in the background.

Settings

Accounts and preferences live in chrome.storage.sync, so they follow you to every browser where you're signed in.

  • Add any number of Gmail or Google Workspace addresses
  • Label and color each account
  • Reorder with ↑ / ↓
  • Check each account's connection with one click
  • Choose how often to check: 1 to 30 minutes
  • Turn desktop notifications on or off

Privacy and permissions

The extension asks for as little as possible. Nothing is collected, sent anywhere or shared. Read the full privacy policy.

PermissionWhy it's needed
https://mail.google.com/*Read the unread-mail feed of the accounts you add, using your existing browser session.
storageSave your account list and preferences, and cache the last result so the popup opens instantly.
alarmsCheck for new mail periodically in the background.
notificationsTell you when new mail arrives (can be turned off).

Install

Works in any Chromium-based browser.

  1. Download or clone the repository.
  2. Open brave://extensions (or chrome://extensions, edge://extensions).
  3. Turn on Developer mode.
  4. Click Load unpacked and select the extension folder.
  5. The settings page opens: add your Gmail addresses.

Each account must be signed in to the browser. Sign in once at mail.google.com and use "Add another account" for the others.

Limitations

  • Read-only: marking as read, archiving and replying happen in Gmail itself
  • Shows the inbox's 20 most recent unread messages (a limit of Gmail's feed)
  • The Atom feed is a long-standing but undocumented Gmail endpoint