PhishLens is a Chrome extension that checks an email in Gmail or Outlook and tells you whether it looks like phishing, and why: which words, which links, whether the sender is who it claims to be, what the attachments contain. It is free, open source and available in English, French, Portuguese, Spanish, German, Italian, Dutch and Hausa.
It is an assistant, not a filter: it gives a verdict and its reasons so you can decide, and it can be wrong.
| Check | How |
|---|---|
| Wording | A multilingual text model scores the email; LIME shows the words that weighed most |
| Links | Every real link target, including the one behind "Click here", against Google Safe Browsing, PhishTank, URLhaus and Spamhaus, plus a link model |
| Sender | SPF, DKIM and DMARC, read from Gmail's original headers; whether the name shown ("Chronopost", "PayPal") matches the address |
| Attachments | PDFs (scanned ones through OCR), images, QR codes, Office files and their macros, archives, calendar invites |
The text score alone would flag real bank and university emails, because they use the same words as phishing. PhishLens lowers it only when the sender is proven (DKIM aligned with the From: domain), and a link known to be malicious makes the verdict "phishing" whoever sent it. Details: architecture.
To check an email, PhishLens sends its text, links and headers (and the attachment, if you scan one) to a server. By default that server is PhishLens Cloud, run by the author on Oracle Cloud:
- the email is analysed in memory and not stored; only the result is kept, for 24 hours, keyed by a hash of the email, so that a second scan answers at once;
- threat-intelligence services receive the link addresses only;
- your scan history stays in your browser;
- nothing else leaves your browser unless you choose to report a wrong verdict: you then see and can edit the redacted text before it is sent.
If you would rather no email leave your computer, run the backend yourself (below) and pick Local in the settings. Everything is in the privacy policy.
On real mail that no model saw during training, PhishLens Cloud's text model, at its 0.7 threshold:
| Language | Legitimate emails flagged | Phishing caught |
|---|---|---|
| English | 1 of 255: 0.4% (95% CI 0.1% to 2.2%) | 1,805 of 1,952: 92.5% (91.2% to 93.6%) |
| French | 1 of 63: 1.6% (0.3% to 8.5%) | 202 of 231: 87.4% (82.6% to 91.1%) |
The intervals say how much these counts pin down: with one false alarm in 63 French emails, the true rate could be anywhere from 0.3% to 8.5%. The legitimate emails all come from one mailbox and the phishing from recent public collections (Nazario 2025, phishing_pot 2026): another inbox may see more false alarms. The model was trained on 22 languages but tested on real phishing only in English, French, German, Dutch, Portuguese and Spanish; in other languages its score is less proven. The link, sender and threat-intelligence checks do not depend on the language. Measure it yourself with the public benchmark (evaluation.md). How the model was built and measured: multilingual-model.md; what can go wrong: known limitations.
The whole system (PhishLens Cloud, October 24, 2026), measured with the public benchmark on real mail sent in 2026:
| Result | |
|---|---|
| Phishing nobody looked at while tuning (phishing_pot, Nazario) | 1,812 of 2,000 caught: 90.6% (95% CI 89.2% to 91.8%) |
| Legitimate, public Apache mailing lists | 1 of 297 flagged: 0.3% (0.1% to 1.9%) |
| Legitimate, real personal inboxes (bank, university and service notifications), received after the model's training mail | 0 of 117 flagged: 0.0% (0.0% to 3.2%) |
English (81.6%) and French (87.2%) are the weakest languages, and some phishing sent from the attacker's own DKIM-signed domain still gets through; the runs, their causes and what was rejected are in evaluation.md.
A scan takes about 65 ms on the server (median, CPU only), plus the threat-intelligence lookups.
PhishLens is not on the Chrome Web Store yet.
- Download
PhishLens-extension-<version>.zipfrom the latest release and unzip it. - Open
chrome://extensions, turn on Developer mode and click Load unpacked on the unzipped folder. - Open an email in Gmail or Outlook on the web and click Scan with
PhishLens next to the subject. You can also drop a
.emlfile or an attachment, or paste text, in the popup.
The user guide covers everything step by step.
mkdir -p backend/model
huggingface-cli download AnzouKiona/phishlens-distilbert --local-dir backend/model
cd backend && docker compose up --buildThen pick Local in the extension settings. A self-hosted server uses the English text model by default; the multilingual model is private because part of its training mail is. Configuration, deployment and monitoring: operations guide.
| Document | Contents |
|---|---|
| User guide (wiki) | Install, Gmail and Outlook, reading a verdict, settings, troubleshooting |
| Architecture | Components, scoring, trust paths, design decisions |
| Multilingual model | How the text model was trained and measured |
| Evaluation | What is measured, confidence intervals, and a public benchmark you can run |
| Languages | Translations, OCR languages, adding a language |
| Threat model | Risks, mitigations, known limitations |
| Operations | Deployment, configuration, logs, metrics, load testing |
| Contributing | Setup, project layout, checks |
| Changelog, Security, Privacy, Terms |
- Outlook: attachments, full headers and automatic scanning, through Microsoft's mail API.
- Yahoo Mail.
- Measurement and research: more reviewed real emails, the reports users send, SHAP next to LIME, retraining on OCR text and QR-code phishing.
- A multilingual model trained only on public data, so that it can be published; a native review of the Hausa translation is under way.
- Chrome Web Store release.
PhishLens started as a final-year project for a B.Sc. in Cybersecurity at Nile University of Nigeria (2025/2026) and is now maintained independently. The original three models were trained by the project team in PhishingDetector, maintained by dodi-ctrl.
It builds on Google Safe Browsing (its warnings are advisories provided by Google), PhishTank, URLhaus by abuse.ch, the Spamhaus Domain Block List, Hugging Face Transformers, mmBERT and the phishing-scam-detector it was distilled from, DistilBERT, scikit-learn, LIME, Tesseract, FastAPI, and the public email datasets listed in PhishingDetector and in the model documentation.
GNU AGPL-3.0: anyone may use, study, modify and share PhishLens, and a modified version, including one offered as an online service, must be published under the same license. Versions up to 1.15.5 were released under the MIT license. The text model weights are licensed separately (CC BY-NC 4.0), because some of their training data is non-commercial.