A local-first privacy analyzer that detects trackers, third-party scripts, and fingerprinting on websites — without sending any data to remote servers.
✅ Browser Extension (Chrome/Edge/Firefox compatible)
- Detect third-party domains loading scripts <<<<<<< HEAD =======
- Identify inline
eval()patterns - Real-time Canvas Fingerprinting Detection - intercepts canvas API calls
- Fingerprinting API detection (navigator, screen, WebGL)
upstream/main
- Export detailed JSON reports
- Light/Dark Mode Toggle - switch between themes for comfortable viewing
- All analysis happens locally in your browser
✅ CLI Tool
- Analyze any URL from the command line
- Detect trackers, eval patterns, and fingerprinting APIs
- Export reports to JSON
- Perfect for automated audits
- Open Chrome/Edge and navigate to
chrome://extensions/
This repo uses Jest for unit tests.
Prerequisites:
- Node.js 18+ (CI also runs on Node 20)
Run locally:
npm install
npm test
Notes:
- Coverage is generated automatically in the
coverage/folder. - Tests cover:
- Detection utilities (third-party domains, eval/dangerous patterns)
- JSON export formatting (filename + report shape)
- CLI helpers (filter parsing, result filtering, basic HTML analysis)
CI:
-
GitHub Actions runs
npm ciandnpm teston push/PR and uploads the coverage report artifact.- Enable "Developer mode"
- Click "Load unpacked"
- Select the
extension/folder
- Use it:
- Visit any website
- Click the Privacy Analyzer icon
- View detected trackers and export reports
- Toggle between light and dark themes using the 🌙/☀️ icon in the top right corner
-
Install dependencies:
cd cli npm install -
Run analysis:
# Analyze all privacy issues node index.js analyze https://example.com # Filter specific types of issues node index.js analyze https://example.com --filter trackers node index.js analyze https://example.com --filter eval,fingerprinting
-
Export report:
# Export all results node index.js analyze https://example.com --output report.json # Export filtered results node index.js analyze https://example.com --filter trackers --output trackers.json
-
Available filters:
trackers: Show only third-party domainseval: Show only inline eval patternsfingerprinting: Show only fingerprinting APIsall: Show everything (default)- Use comma-separated values for multiple filters
privacy-analyzer/
├── extension/ # Browser extension
│ ├── manifest.json # Extension manifest (Manifest V3)
│ ├── background.js # Background service worker
│ ├── content.js # Content script (runs on pages)
│ ├── popup.html # Extension popup UI
│ ├── popup.js # Popup logic
│ └── icons/ # Extension icons
├── cli/ # Command-line tool
│ ├── index.js # CLI implementation
│ └── package.json
├── .github/
│ └── ISSUE_TEMPLATE/ # Issue templates
├── README.md
└── CONTRIBUTING.md
We welcome contributions! This project is perfect for Hacktoberfest and first-time contributors.
Check out issues labeled good first issue to get started:
- Add UI to show top 3 detected third-party domains
- Add JSON export functionality
- Improve eval() detection heuristics
- Add more fingerprinting API detection
- Create extension icons
- Add unit tests
See CONTRIBUTING.md for detailed guidelines.
- Extension: JavaScript, WebExtensions API (Manifest V3)
- CLI: Node.js, Commander.js
- Testing: (Coming soon - add your first test!)
- Add more tracker detection rulesets
- Detect canvas fingerprinting
- Add WebRTC leak detection
- Create Firefox-specific manifest
- Add automated tests
- Create a website/dashboard for the project
- Add CI/CD with GitHub Actions
MIT License - see LICENSE for details.
This project participates in Hacktoberfest! Contribute and earn your swag while learning about privacy and web security.
- Fork this repository
- Pick an issue or suggest a new feature
- Create a pull request
- Get your PR reviewed and merged!
- Create an issue for bugs or feature requests
- Check existing issues before creating new ones
- Be respectful and follow our Code of Conduct
Made with ❤️ for privacy and open source