A minimalist Chrome extension that captures text automatically as you scroll. No clicking, no complexity - just scroll and it works.
↑ Scroll any webpage, text is captured automatically in visual order
- 📜 Just Scroll - Text is captured automatically as you scroll
- 🎯 Smart Filtering - Only captures real content, removes navigation/UI/duplicates
- 📋 Visual Order - Text appears in the exact order you see it (top to bottom)
- 💾 One-Click Export - Download as .txt or copy to clipboard
- 🌐 Universal - Works on ALL websites (static, dynamic, Notion, Slack, etc.)
- ⚡ Lightweight - 200 lines of code, non-intrusive, fast
- 🎨 Minimalist UI - Black theme, large textarea, clean interface
- 🔐 Privacy - Everything stays on your device, zero tracking
- Wait 1-2 seconds after scrolling for text to appear
- Reload page (F5) if nothing captures at first
- Scroll slowly through the content you want to extract
- Works in all languages (English, French, etc.)
- Browser: Google Chrome (tested on Chrome 118+)
- OS: Tested on macOS (should work on Windows/Linux but not tested)
- Manifest: V3 (latest Chrome extension standard)
This extension is designed for Google Chrome and has been tested on macOS. It may work on Windows/Linux but hasn't been tested yet.
- Download or clone this repository
- Make sure all files are in the same folder:
manifest.jsoncontent.jspopup.htmlpopup.jspopup.cssicon16.png,icon48.png,icon128.png
- Open Google Chrome
- Navigate to
chrome://extensions/ - Enable Developer mode (toggle in the top-right corner)
- Click "Load unpacked" button
- Select the folder containing all the extension files
- The extension is now installed! You'll see the "T" icon in your Chrome toolbar
- If text doesn't appear, reload the page (F5) where you want to extract text
- The extension activates on scroll, not on page load
- Open any webpage - Works on all sites
- Scroll through the page - Text is captured automatically
- Click the extension icon → Download or Copy
That's it! No buttons to click, no settings to configure.
- Wait 1-2 seconds after scrolling for capture to complete
- If nothing appears: Reload the page (F5) and scroll again
- Scroll slowly to ensure all content loads (especially on Slack/Notion)
- Text appears in exact visual order from top to bottom
- Large Textarea: See all captured text at once
- Click textarea: Auto-selects all text
- Toggle ON/OFF: Green = Active, Gray = Inactive
- 📥 Download: Save as timestamped .txt file
- 📋 Copy: Copy all to clipboard
- 🗑️ Clear: Remove all captured text
- ✅ Static websites - Blogs, articles, documentation
- ✅ Dynamic apps - React, Vue, Angular SPAs
- ✅ Notion - Pages, databases, documents
- ✅ Slack - Messages, channels, DMs
- ✅ GitHub - Code, README, issues
- ✅ Stack Overflow - Questions, answers
- ✅ News sites - Articles, comments
- ✅ Social media - Posts, threads
- ✅ Any website with text content
- Content Script (
content.js) monitors scroll events on web pages - Debouncing ensures text is only captured when scrolling pauses (300ms)
- Smart Filtering extracts text from relevant HTML elements (p, h1-h6, li, div, etc.)
- Duplicate Prevention uses Set data structure to avoid capturing the same text twice
- Local Storage saves captured text using Chrome's storage API
- Popup Interface provides real-time view and control over captured content
- Passive scroll listeners for better performance
- Debounced extraction to minimize processing
- Efficient DOM queries targeting specific elements
- Smart viewport detection to only process visible content
- ✅ All data stored locally in your browser
- ✅ No external API calls or data transmission
- ✅ No tracking or analytics
- ✅ Open source - inspect the code yourself!
- Check if extension is Active (green status in popup)
- Try scrolling more slowly - give the extension time to process
- Some websites use shadow DOM or iframes which may prevent extraction
- Refresh the page and try again
- Make sure all files are present in the extension folder
- Check Chrome's extension page (
chrome://extensions/) for any errors - Try disabling and re-enabling the extension
- Reload the webpage you're trying to extract from
- Some internal Chrome pages (like
chrome://URLs) don't allow extensions to run - Try the extension on regular websites (https:// URLs)
Feel free to modify the extension to suit your needs:
- Adjust scroll delay: Change the
setTimeoutvalue incontent.js(line 100) - Change text filters: Modify the
querySelectorAllin line 42 to target different elements - Customize styling: Edit
popup.cssto change colors, fonts, or layout - Add features: The code is well-commented and easy to extend
appscrolldownloadtext/
├── manifest.json # Extension configuration
├── content.js # Background script that captures text
├── popup.html # Extension popup interface
├── popup.js # Popup logic and interactions
├── popup.css # Styling for the popup
├── icon16.png # Extension icon (16x16)
├── icon48.png # Extension icon (48x48)
├── icon128.png # Extension icon (128x128)
└── README.md # This file
This is a custom extension created for personal use. Feel free to:
- Modify it for your own needs
- Share it with others
- Improve the code
- Add new features
This extension is provided as-is for personal use. Feel free to use, modify, and distribute.
- Browser: Only tested on Google Chrome (macOS)
- Not tested on: Windows, Linux, Firefox, Safari, Edge
- Cannot extract text from:
- Canvas elements (images rendered via JavaScript)
- Some iframes with cross-origin restrictions
- Chrome internal pages (
chrome://) - PDF viewers
- Text extraction quality depends on website HTML structure
- Very dynamic websites may require slow scrolling
If you encounter issues:
- Check the troubleshooting section above
- Inspect the browser console for error messages
- Verify all files are present and correctly named
- Try reinstalling the extension
Made with ❤️ for easier text extraction while browsing
Enjoy automatic text capturing! 🎉