Privacy-first browser extension that checks link safety before you click.
π Zero tracking | β‘ Sub-100ms response | π Open-source | π‘οΈ Real-time analysis
LinkGuard protects you from clicking dangerous links by analyzing them in real-time. Simply hover over any link to see:
- β Safety rating (Safe / Caution / Suspicious)
- β Real destination URL
- β Security warnings (HTTP vs HTTPS, suspicious domains, phishing keywords)
- β Instant analysis in under 100ms
All analysis happens before you click - giving you the information you need to browse safely.
Or see Development Setup to run from source.
Core Protection:
- β Hover detection on all links
- β Real-time safety analysis
- β Pattern-based threat detection (suspicious TLDs, phishing keywords, IP addresses)
- β HTTPS vs HTTP checking
- β URL expansion for shortened links (bit.ly, tinyurl, etc.)
- β Beautiful tooltip interface
- β Statistics tracking
- β Smart caching (sub-100ms for repeated checks)
- β Privacy-first (zero tracking, local analysis)
- π Google Safe Browsing API integration
- π Multi-API verification (VirusTotal, PhishTank)
- π Domain age checking
- π SSL certificate validation
- π Settings page with customization options
- π Cross-browser support (Firefox, Safari, Edge)
- π Advanced threat intelligence (multiple APIs)
- π Link screenshot preview
- π Historical threat data
- π Custom whitelist/blacklist
- π Advanced analytics dashboard
- π Unlimited checks (free tier: 1,000/month)
Extension:
- Vanilla JavaScript (no frameworks for speed)
- Chrome Extension Manifest V3
- Content scripts + Background service worker
- Local storage (privacy-first)
Current Analysis:
- Pattern-based detection (suspicious TLDs, keywords, protocols)
- Smart caching system (24-hour cache, sub-100ms responses)
Planned Integrations:
- Google Safe Browsing API (10K requests/day free)
- WHOIS lookup (domain age)
- SSL Labs (certificate checking)
Future Backend (Premium):
- Node.js/Express (Vercel)
- PostgreSQL (Supabase)
- Redis cache (Upstash)
For Contributors & Developers:
- Chrome/Chromium browser
- Git
- Text editor (VS Code recommended)
- Clone the repository:
git clone https://github.com/nowakpwel/linkguard.git
cd linkguard-
Load extension in Chrome:
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (top right toggle)
- Click "Load unpacked"
- Select the repository folder
- LinkGuard icon appears in toolbar!
- Open Chrome and go to
-
Test it:
- Visit any website (github.com, reddit.com, etc.)
- Hover over any link
- See LinkGuard tooltip appear with safety information!
-
Open console for debugging:
- Right-click extension icon β "Inspect popup" (for popup debugging)
- Press F12 on any webpage β Console tab (for content script logs)
- chrome://extensions/ β Click "service worker" (for background script logs)
linkguard/extension/
βββ manifest.json # Extension configuration
βββ README.md # This file
βββ LICENSE # MIT License
β
βββ src/
β βββ popup/ # Extension popup UI
β β βββ popup.html
β β βββ popup.css
β β βββ popup.js
β β
β βββ content/ # Injected into web pages
β β βββ content.js
β β βββ content.css
β β
β βββ background/ # Service worker
β β βββ background.js
β β
β βββ utils/ # Shared utilities
β β βββ api.js # API integrations
β β βββ urlParser.js # URL analysis
β β
β βββ assets/ # Icons and images
β βββ icon16.png
β βββ icon48.png
β βββ icon128.png
β
βββ docs/ # Documentation
βββ ARCHITECTURE.md
βββ CONTRIBUTING.md
Popup console:
- Right-click extension icon β "Inspect popup"
Content script console:
- Press F12 on any webpage β Console tab
- Look for messages starting with "LinkGuard:"
Background service worker console:
- Go to chrome://extensions/
- Click "service worker" link under LinkGuard
- (Note: Service worker sleeps when inactive - hover over a link to wake it up)
Extension doesn't load:
- Check that manifest.json is in the root folder
- Look for red "Errors" button in chrome://extensions/
- Verify all required files are present (see Project Structure below)
Tooltip doesn't appear:
- Refresh the webpage (Ctrl+R / Cmd+R)
- Check console for JavaScript errors
- Ensure you hover for at least 300ms (prevents flashing)
- Verify content.css is loading
Tooltip stuck on "Checking...":
- Open background service worker console
- Check for errors in message passing
- Verify background.js is running
- Test on multiple sites: github.com, reddit.com, news sites
- Test different link types: HTTPS, HTTP, IP addresses, suspicious domains
- Check performance: Console shows response times for each check
- Try edge cases: Very long URLs, special characters, malformed links
LinkGuard is open-source and welcomes contributions!
Ways to help:
- π Report bugs
- π‘ Suggest features
- π§ Submit pull requests
- π Improve documentation
- β Star the repo!
See CONTRIBUTING.md for guidelines.
LinkGuard is privacy-first by design:
- β Zero tracking - No analytics, no telemetry
- β Zero data collection - Links checked locally when possible
- β Open-source - Full transparency, audit our code
- β No user accounts - Works immediately, no signup
- β Minimal permissions - Only what's necessary
When we call external APIs (Google Safe Browsing, etc.), we send only the URL hash, never your full browsing history.
MIT License - see LICENSE file for details.
- Website: linkguard.dev
- GitHub: github.com/nowakpwel/linkguard
- Issues: Report a bug
- Discussions: Join the conversation
Pawel Nowak (@nowakpwel)
- π Based in WrocΕaw, Poland
- πΌ Java Developer | Privacy Advocate
- π LinkedIn
- β Hover detection working
- β Real-time analysis
- β Tooltip interface
- β Pattern-based threat detection
- β URL expansion for shortened links
- β Statistics tracking
- β Sub-100ms response time
- β Published to Chrome Web Store
- Google Safe Browsing API integration
- Improved threat detection accuracy
- Settings page with preferences
- Multi-API verification (VirusTotal, PhishTank)
- Advanced analytics dashboard
- Custom whitelist/blacklist
- Business tier
- Firefox extension
- Safari extension
- Edge extension
β Star this repo if you want safer browsing!
π Built in public - follow the journey!
Last updated: March 2026