A lightweight Chrome extension that allows you to quickly send the URL of your current tab to one or more predefined email addresses with a single click.
- One-click URL sharing via Gmail
- Multiple recipient support
- Customizable email subject and body
- Settings synchronized across devices
- Minimal permissions required
- Clone this repository or download it as a ZIP file
- Build the extension:
npm install npm run build - Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top-right corner
- Click "Load unpacked" and select the
distdirectory created by the build process - Important: After building, you must add your Google OAuth Client ID to the
manifest.jsonfile in thedistfolder:- Open
dist/manifest.json - Locate the "oauth2" section
- Replace the placeholder client ID with your actual Client ID from Google Cloud Console
- Save the file before loading the extension in Chrome
- Open
This extension requires OAuth2 credentials to authenticate with the Gmail API. Follow these detailed steps to set up your credentials:
-
Go to the Google Cloud Console
-
Create a new project:
- Click on the project dropdown at the top of the page
- Click "New Project"
- Enter a name for your project and click "Create"
-
Enable the Gmail API:
- In the left sidebar, click "APIs & Services" > "Library"
- Search for "Gmail API" and click on it
- Click "Enable"
-
Configure the OAuth consent screen:
- In the left sidebar, click "APIs & Services" > "OAuth consent screen"
- Select "External" user type and click "Create"
- Fill in the required fields (App name, User support email, Developer email)
- Click "Save and Continue"
- Add the scope:
.../auth/gmail.sendand click "Save and Continue" - Add your email as a test user and click "Save and Continue"
- Click "Back to Dashboard"
-
Create OAuth2 credentials:
- In the left sidebar, click "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose "Chrome Extension" as the application type
- Enter a name for your credentials
-
Find your Chrome extension ID:
- Go to
chrome://extensions/ - Enable Developer mode
- Find your extension and copy the ID (a long string of letters and numbers)
- Go to
-
Complete OAuth2 configuration:
- Return to the Google Cloud Console credentials page
- Paste your extension ID in the "Extension ID" field
- Click "Create"
- Copy the generated Client ID
-
Update the extension manifest:
- Open the
manifest.jsonfile in your extension directory - Replace
"YOUR_CLIENT_ID_HERE.apps.googleusercontent.com"with your generated Client ID - Save the file
- Reload the extension in Chrome
- Open the
Before you can use the extension, you need to authenticate with Gmail:
- After installing the extension, click on the extension icon in the toolbar
- Click the "Authenticate with Gmail" button
- Follow the Google sign-in prompts to grant the extension permission to send emails
- Once authenticated, you'll see a success message
If you encounter authentication errors later, you can re-authenticate using the same button.
- After installing the extension and authenticating, click the "Settings" link
- Configure one or more recipient email addresses (comma-separated)
- Customize the subject line and body text (use {url} as a placeholder for the URL)
- Click "Save Settings"
- Navigate to any webpage you want to share
- Click the extension icon in the toolbar
- Click the "Email URL" button
- The URL will be sent via Gmail to your configured recipients
If you see "Failed to authenticate with Gmail" or "bad client id" errors:
-
Verify your client ID is correct:
- Check the
dist/manifest.jsonfile to ensure the client ID is correct - Verify the client ID matches the one generated in Google Cloud Console
- Make sure you're using the correct extension ID in Google Cloud Console
- Check the
-
Verify OAuth consent screen configuration:
- Check that the Gmail API is enabled
- Ensure the gmail.send scope is properly configured
- Verify your email is added as a test user
-
Try re-authorizing:
- Click the "Authenticate with Gmail" button
- Make sure you're signed in to your Google account in Chrome
- Grant the necessary permissions when prompted
If problems persist:
- Go to
chrome://extensions - Find the URL Gmail Send extension
- Click "Details" then "Extension options"
- Click "Authenticate with Gmail" again
This extension requires the following permissions:
activeTab: To access the URL of your current tabidentity: For OAuth2 authentication with Gmailstorage: To store your settings
The extension does not collect or store any personal data beyond what's needed for the core functionality.
npm run build: Build the extension for productionnpm run dev: Build with watch mode for development
src/: TypeScript source filespopup/: Popup UI filesoptions/: Settings page filesicons/: Extension iconsdist/: Build output (generated)
MIT