StayFocusd – Website Blocker & Focus Timer & Shorts Blocker
Based on the RiskyPlugins AI security review of the observed evidence.
Analysis record
- Analysed
- 2 days ago
- Version
- v4.6.18
- Artifact
- SHA256 CE0…E75
- Source
- Findings (non-IoC)
Is StayFocusd – Website Blocker & Focus Timer & Shorts Blocker safe?
StayFocusd is a site blocker and focus timer for Chrome, published by the team at stayfreeapps.com and used by roughly 700,000 people. It works by running small scripts inside the pages you visit, which is why the scan found network calls in files like content-scripts/overlay.js and content-scripts/setting-up.js. The manifest record captured for this scan lists no permissions or host permissions, which cannot be right for an extension whose entire job is blocking sites. Treat that part of the record as missing rather than empty.
The most eye-catching item is a cluster of OBFUSCATION-UNICODE_HEAVY hits in content-scripts/usage-monitoring.js, content-scripts/blocked-statistics.js and chunks/settings-qqO8YvQZ.js. If those were a decoder hiding a payload, it would matter a lot. What the rule actually measures is how much non-English text sits in a file, and an extension shipping translated interface strings and emoji will trip it every time. Nothing in those files unpacks a string at runtime.
The other hits are simple call markers. NET-FETCH-content-scripts/ad-finder.js-1, NET-SOCKET_IO-content-scripts/setting-up.js-27 and NET-JQUERY_AJAX-content-scripts/overlay.js-35 record that code can open a connection. They do not record where it connects to, and no domain list came back with them. No malware signature and no stolen-credential pattern matched anywhere in the extension. A productivity tracker that never phoned home would not be tracking anything.
One thing a scanner cannot check is the store listing: the title borrows the name of an older, well-known blocker. That is worth knowing, though it is a marketing question rather than something the code does.
No Findings
All security checks passed
Publisher Evidence
Limited evidencePublisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.
Chrome does not expose the same publisher verification data as IDE stores, so this score is deliberately conservative.
13 evidence rows available.
No Threats Detected
This extension passed all security checks
AI Security Report
AI Security Review
Evidence context: threat category none; evidence quality moderate.
StayFocusd – Website Blocker & Focus Timer & Shorts Blocker is a Chrome site blocker published by [email protected], with about 700,000 users on version 4.6.17. The scan returned two kinds of finding: network call markers inside the content scripts, and UNICODE_HEAVY obfuscation hits across nine content scripts and two bundled chunks. No IoC, no malware signature, no secret, and no dependency finding came back.
The network findings are call-site markers. NET-SOCKET_IO-content-scripts/setting-up.js-27 and -31, NET-FETCH-content-scripts/overlay.js-20 and -21, NET-JQUERY_AJAX-content-scripts/overlay.js-35, NET-FETCH-content-scripts/smart-bomb.js-13, NET-SOCKET_IO-content-scripts/gen-ai-collector.js-13, NET-FETCH-content-scripts/ai-link-modifier.js-1, NET-SOCKET_IO-content-scripts/ad-finder.js-1 and NET-JQUERY_AJAX-content-scripts/in-app-blocking.js-576 each record that a script can open a connection through socket.io, fetch or jQuery. None of them names a destination. No domain list, no IP and no host entry shows up anywhere in this extension's findings. For a tool whose job is counting your minutes per site and enforcing limits, a socket client and periodic fetch calls are the mechanism. No endpoint was recorded, which leaves a gap in what was captured.
The obfuscation hits are one rule repeated: OBFUSCATION-UNICODE_HEAVY in usage-monitoring.js:380, smart-bomb.js:397, setting-up.js:303, overlay.js:20, in-app-blocking.js:303, gen-ai-collector.js:403, blocked-statistics.js:408, ai-link-modifier.js:397, ad-finder.js:397, chunks/settings-qqO8YvQZ.js:1 and chunks/_virtual_wxt-plugins-CbggpU_J.js:313. That rule counts non-ASCII character density. Translated interface strings, emoji in overlay copy and typographic punctuation all push the count up. A real encoder would come with a decoder call in the same file, and there isn't one here. Look at _virtual_wxt-plugins-CbggpU_J.js:313: that file name is a bundler virtual module, which is exactly where locale bundles land.
What did not fire matters as much. There are no credential-harvesting patterns, no embedded keys, no cryptominer code, no proxyware relay logic, no list of login domains, and no malware family match. The extension's category, a blocker that has to see every URL you load, fits the code that was found.
A skeptic would push back on two things. The title borrows StayFocusd, a well known older blocker, and a borrowed name is how lookalikes pull installs. Also, the manifest record for this scan carries no permissions and no host permissions at all, while a site blocker cannot run without host access, so the manifest portion of this scan is incomplete. Both points are fair. Neither one points at code doing harm: the naming is a store-listing question, and the missing manifest is a collection gap a re-run would close. The files themselves show bundled translations and ordinary backend calls from a published productivity app.
If the destination check needs finishing, content-scripts/setting-up.js is the file to read, since its socket connection string would name the backend.
Key Reasons
- All network findings are call-site markers (NET-SOCKET_IO, NET-FETCH, NET-JQUERY_AJAX) in content scripts that a screen-time tracker needs in order to sync, with no destination recorded
- Every obfuscation hit is the single OBFUSCATION-UNICODE_HEAVY rule on bundled content scripts and chunks, consistent with i18n strings and emoji rather than a payload encoder
- Zero IoC, malware-signature, secret, dependency, or code-smell findings across the extension
- Publisher is an identifiable company ([email protected]) and the feature set matches the stated category
False Positive Considerations
- UNICODE_HEAVY rule firing on bundled locale and UI strings
- Framework call-site detection (socket.io, fetch, jQuery ajax) with no endpoint extraction
- Minified/bundled chunk files (chunks/settings-qqO8YvQZ.js) counted as separate obfuscation hits
- Manifest arrays empty, so permission and endpoint context is missing from the scan
Reviewed 2026-10-18; recommended action: monitor; model confidence 72%.
Chrome version history
Risk trend by version
3 analyzed versions. Each point is the latest successful scan for that version; failed zero-score scans are hidden. Dates are based on first seen by risky plugins.
Pick any point on the chart to explore that version's code below.
Source Code Not Available
Source code is not available for this version of the extension.
About This Extension
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace
Web Guardian: Phishing & Malware Protection
[email protected]
Tin: Save While Shopping
[email protected]
StayFree - Website Blocker, Web Usage Stats, Shorts Blocker
[email protected]
Luna Adblock for Youtube & Websites
[email protected]
AIWise — Claude & Gemini Usage, Quota Tracker & Bookmarks
[email protected]
StayFree - Web Analytics & Time Tracker
ST Pulse