Automatically unsubscribes you from email lists by finding and executing unsubscribe links in your Gmail inbox.
For each sender email address you provide, the extension:
- Finds the most recent email from that sender in Gmail
- Extracts the unsubscribe URL using (in order of preference):
List-Unsubscribe-Postheader → fires a silent one-click POST request (no browser tab needed)List-Unsubscribeheader → navigates to the URL and clicks the button- HTML body parsing → finds the unsubscribe link in the email body
- Navigates to the unsubscribe page in a background tab
- Clicks the unsubscribe button automatically
- Closes the tab and reports success or failure
- Go to console.cloud.google.com
- Click Select a project → New Project
- Name it
Gmail Unsubscriberand click Create
- In your project, go to APIs & Services → Library
- Search for Gmail API and click Enable
- Go to APIs & Services → Credentials
- Click + Create Credentials → OAuth client ID
- If prompted, configure the OAuth consent screen:
- User type: External (or Internal if you use Google Workspace)
- App name:
Gmail Unsubscriber - Add your email as a test user
- Back in Create OAuth client ID:
- Application type: Chrome Extension
- Name:
Gmail Unsubscriber - For "Item ID", you'll need your extension ID (get it in Step 5 below, then come back)
- Copy the Client ID from Step 3 (looks like
xxxx.apps.googleusercontent.com) - Open
manifest.jsonin this folder - Replace
YOUR_GOOGLE_CLIENT_ID.apps.googleusercontent.comwith your actual Client ID:
"oauth2": {
"client_id": "123456789-abcdefg.apps.googleusercontent.com",
...
}- Open Chrome and go to
chrome://extensions - Enable Developer mode (toggle in the top right)
- Click Load unpacked
- Select this folder (
gmail-unsubscriber/) - The extension will appear with an ID like
abcdefghijklmnopqrstuvwxyz123456 - Copy that ID and go back to Step 3 to add it to your OAuth credentials
- Click the extension icon in Chrome's toolbar
- Click Sign in with Google
- Authorize the requested Gmail permissions
- You're ready to go!
- Click the extension icon
- Paste a list of sender email addresses (one per line)
- Click Start
- Watch the live progress log — each sender shows ✓ (success) or ✗ (error)
- You can paste directly from a spreadsheet — the extension ignores blank lines
- If a sender isn't found in your inbox, it will show
No emails found - Some senders require a manual click on their unsubscribe page — these will show as
No unsubscribe button found - The extension works best with senders that use standard
List-Unsubscribeemail headers (beehiiv, Mailchimp, Klaviyo, Substack, etc.)
"Authentication failed"
- Make sure your Client ID is correctly set in
manifest.json - Ensure your Google account is added as a test user in the OAuth consent screen
- Try reloading the extension at
chrome://extensions
"No emails found from this sender"
- The sender may have used a different "from" address in the past
- Check Gmail directly to confirm emails exist
"No unsubscribe button found"
- The sender uses a non-standard unsubscribe page
- Visit the email manually and use Gmail's built-in unsubscribe button (next to the sender name)
- This extension only reads email headers and bodies to find unsubscribe links
- It never stores, transmits, or logs any email content
- All processing happens locally in your browser
- OAuth tokens are managed by Chrome's identity API and are not accessible outside the extension
gmail-unsubscriber/
├── manifest.json # Extension config (put your Client ID here)
├── background.js # Service worker — Gmail API + unsubscribe logic
├── popup.html # Extension popup UI
├── popup.css # Popup styles
├── popup.js # Popup interaction
├── icons/
│ ├── icon16.png
│ ├── icon48.png
│ └── icon128.png
└── README.md # This file