A browser extension that captures highlighted text from Google Docs and saves it directly to your Obsidian notes repository via GitHub API.
- 🔒 Better Security: No Content Security Policy issues
- 🦊 Firefox Compatible: Works reliably in all modern browsers
- ⚡ Better Performance: Native browser APIs instead of injected JavaScript
- 🎨 Better UI: Dedicated popup interface with proper styling
- ⚙️ Settings Page: Secure storage for configuration
- 📝 Capture selected text from any Google Doc with one click
- 🔗 Clean, native browser extension interface
- 📅 Automatic meeting note formatting with customizable templates
- 🏷️ Add context like meeting title, attendees, and tags
- 🔄 Direct GitHub API integration with fine-grained token support
- 📋 Markdown formatting optimized for Obsidian
- 🔒 Secure settings storage using browser APIs
- Load the extension in your browser (Chrome/Firefox/Edge)
- Configure GitHub settings in the extension options
- Select text in Google Docs and click the extension icon
- Fill in meeting details and save to your Obsidian repository
- Open
chrome://extensions/(oredge://extensions/) - Enable "Developer mode"
- Click "Load unpacked" and select this folder
- Open
about:debugging - Click "This Firefox"
- Click "Load Temporary Add-on"
- Select the
manifest.jsonfile
Note: This extension uses Manifest V3 with event pages for Firefox compatibility and service workers for Chrome/Edge.
- Click the extension icon and select "Settings"
- Or right-click the extension icon → "Options"
- Fill in your GitHub repository details:
Required Settings:
- GitHub Token: Fine-grained personal access token
- Repository Owner: Your GitHub username
- Repository Name: Your Obsidian notes repository
Optional Settings:
- Notes Path: Subfolder for meeting notes (e.g., "Meeting Notes/")
- Template Settings: Customize what gets included in notes
- Default Tags: Tags automatically added to every note
- Go to GitHub Settings → Personal access tokens → Fine-grained tokens
- Click "Generate new token"
- Configure:
- Repository access: Only select your Obsidian notes repository
- Permissions:
- Contents (Write) - to create/update files
- Metadata (Read) - to access repository info
- Expiration: 90 days or less (more secure)
- Copy the token and add it to extension settings
- Open any Google Doc
- Select/highlight the text you want to capture
- Click the extension icon (📝) in your browser toolbar
- Fill in the meeting details:
- Meeting Title (required)
- Attendees (optional)
- Tags (optional, defaults to "meeting-notes")
- Custom filename (optional, auto-generated if empty)
- Click "Save to Obsidian"
The extension will create a properly formatted Markdown file in your Obsidian repository!
- Scope access to only your Obsidian repository
- Minimal permissions (Contents: Write, Metadata: Read)
- Short expiration periods for better security
- Settings stored using browser's secure storage APIs
- Tokens encrypted at rest by the browser
- No data transmitted to third parties
- No analytics or tracking
- All data stays between your browser, GitHub, and Obsidian
- Open source for full transparency
├── manifest.json # Extension manifest (Manifest V3 - All browsers)
├── popup.html # Extension popup interface
├── popup.js # Popup logic and GitHub API calls
├── popup.css # Popup styling
├── options.html # Settings page
├── options.js # Settings page logic
├── options.css # Settings page styling
├── content.js # Content script for Google Docs
├── content.css # Content script styles
├── background.js # Background script
├── icons/ # Extension icons (16, 32, 48, 128px)
└── README.md # This file
The following files are kept for reference but are no longer needed:
bookmarklet.js- Original bookmarklet codebookmarklet.min.js- Minified bookmarkletconfig.js- Old configuration filedemo.html- Bookmarklet demo pagefirefox-test.js- Firefox troubleshootingmanifest-v2.json- Old Manifest V2 file (no longer needed)
- Enable Developer Mode: Required for Chrome/Edge unpacked extensions
- Check Console Errors: Look for JavaScript errors in browser developer tools
- Permissions: Ensure the extension has access to Google Docs when prompted
- Manifest V3: This extension uses event pages (Firefox) and service workers (Chrome/Edge) for proper cross-browser compatibility
- Select text first: Highlight text in Google Docs before clicking the extension
- Check permissions: Ensure the extension has permission to access Google Docs
- Refresh the page: Sometimes a page refresh helps with content script loading
- Test connection: Use the "Test Connection" button in settings
- Check token permissions: Ensure Contents (Write) and Metadata (Read) are granted
- Verify repository exists: Double-check repository owner and name
- Token expiration: Fine-grained tokens expire - check if yours is still valid
To modify or extend this extension:
- Make changes to the source files
- Reload the extension in your browser's extension manager
- Test thoroughly on actual Google Docs pages
- Check console logs for any JavaScript errors
Feel free to submit issues and pull requests to improve this tool!