A Chrome extension that helps protect your browsing history by automatically detecting and filtering NSFW content. The extension uses a combination of domain-based filtering and image processing to ensure a safer browsing experience.
- 🔒 Automatic NSFW content detection and filtering
- 🖼️ Image blurring with click-to-reveal functionality
- 📝 Customizable keyword filtering
- 🗑️ Automatic history cleaning for NSFW content
- ⚙️ Customizable settings and preferences
- 🔄 Regular updates to the NSFW domain blocklist
- 🎯 Site-specific filtering options
- Clone the repository:
git clone https://github.com/yourusername/nsfw-safe-history.git
cd nsfw-safe-history- Install dependencies:
npm install- Build the extension:
npm run build- Load the extension in Chrome:
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the
distfolder
- Open Chrome and go to
(Coming soon)
- Node.js (v14 or higher)
- npm (v6 or higher)
- Chrome browser
nsfw-safe-history/
├── src/
│ ├── background.js # Background service worker
│ ├── contentScript.js # Content script for page processing
│ ├── popup.js # Popup UI logic
│ └── options.js # Options page logic
├── assets/ # Static assets (images, CSS)
├── public/ # HTML files
├── dist/ # Built extension
└── manifest.json # Extension manifest
# Development build
npm run dev
# Production build
npm run build- Load the extension in Chrome
- Visit a test website
- Check the console for any errors
- Verify that images are properly blurred
- Test the history cleaning functionality
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- NSFW domain list from columndeeply/hosts
- Icons from Heroicons
- UI components inspired by modern design patterns
If you encounter any issues or have suggestions, please open an issue in the GitHub repository.