A Chrome extension that allows you to save highlighted text to multiple platforms: Notion, Apple Notes, and Google Docs.
- π±οΈ Right-click context menu to save highlights
- β¨οΈ Keyboard shortcut (Ctrl+Shift+S / Cmd+Shift+S)
- π Save to Notion databases
- π Save to Apple Notes (macOS/iOS)
- π Save to Google Docs
- βοΈ Configurable default platform
- π― Platform selection popup
- Clone or download this repository
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (top right toggle)
- Click "Load unpacked" and select the extension folder
- The extension icon should appear in your toolbar
- Go to notion.so/my-integrations
- Click "New integration"
- Give it a name (e.g., "Highlight Saver")
- Copy the "Internal Integration Token"
- Create a new database in Notion with these properties:
- Highlight (Title) - for the highlighted text
- Source (URL or Text) - for the source URL
- Date (Date) - for when it was saved
- Share your database with the integration:
- Click the "..." menu in your database
- Go to "Add connections"
- Select your integration
- Copy the database ID from the URL (the long string after the last slash)
- Enter both the token and database ID in the extension options
Apple Notes integration works through URL schemes and requires no additional setup:
- macOS: Works directly with the Notes app
- iOS Safari: Opens highlights in the Notes app
- Other browsers: Falls back to copying content to clipboard
The extension will automatically format highlights and open them in Apple Notes.
Important: For Google Docs integration to work, you need to set up OAuth credentials:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Docs API:
- Go to "APIs & Services" > "Library"
- Search for "Google Docs API"
- Click "Enable"
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Configure the OAuth consent screen if prompted
- Choose "Chrome extension" as application type
- Add your extension ID to the "Application ID" field
- Copy the Client ID
Replace YOUR_GOOGLE_CLIENT_ID in manifest.json with your actual client ID:
"oauth2": {
"client_id": "your-actual-client-id.apps.googleusercontent.com",
"scopes": ["https://www.googleapis.com/auth/documents"]
}- Create a Google Doc where you want highlights to be saved
- Copy the document ID from the URL:
docs.google.com/document/d/DOCUMENT_ID/edit - Enter the document ID in the extension options
- Click "Authenticate with Google" to grant permissions
- Select text on any webpage
- Press
Ctrl+Shift+S(Windows/Linux) orCmd+Shift+S(Mac) - Choose your preferred platform from the popup
- Select text on any webpage
- Right-click and select "Save highlight"
- Choose your preferred platform from the popup
Set a default platform in the options to skip the selection popup and save directly to your preferred service.
- Default Platform: Set to always save to a specific platform or always show the selection popup
- Maximum Highlight Length: Control how much text can be saved (affects Notion only)
- Notion: Configure integration token and database ID
- Apple Notes: Choose note format (simple or detailed)
- Google Docs: Set up authentication and target document
extension/
βββ manifest.json # Extension manifest
βββ background.js # Background service worker
βββ options.html # Options page UI
βββ options.js # Options page logic
βββ .gitignore # Git ignore file
βββ README.md # This file
- "Invalid database ID": Make sure you're copying the full database ID from the URL
- "Connection failed": Check that your integration token is correct and the database is shared with the integration
- "Source property error": The extension will automatically retry with a different format
- "Authentication failed": Make sure your OAuth client ID is correctly set in manifest.json
- "Connection failed": Verify the document ID is correct and you have edit permissions
- "Authentication expired": Re-authenticate through the options page
- "Notes not opening": This feature works best on macOS and iOS Safari
- "Content not appearing": Check if the content was copied to clipboard as a fallback
- Extension not working: Make sure you've reloaded the extension after making changes
- No context menu: Check that you have text selected before right-clicking
- Keyboard shortcut not working: Verify the shortcut isn't conflicting with other extensions
- Notion: Data is sent directly to Notion's API using your integration token
- Apple Notes: No data is sent to external servers; uses local URL schemes
- Google Docs: Data is sent to Google's API using OAuth authentication
- Storage: Only configuration data (tokens, IDs) is stored locally in Chrome's sync storage
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source. Feel free to use, modify, and distribute as needed.
- Added multi-platform support
- Redesigned options page with tabbed interface
- Added Apple Notes integration
- Added Google Docs integration
- Improved error handling and user feedback
- Enhanced UI with platform selection popup
- Initial release with Notion support only