yj_nearbyglasses: an Android and iOS app that warns you when smart glasses are nearby
attempting to detect smart glasses nearby and warn you
At a glance
- What is it?
- Nearby Glasses scans Bluetooth Low Energy advertising frames for manufacturer company IDs and notifies you when a device from a smart glasses vendor appears. It is a heuristic alarm, not a detector, and the README says so repeatedly.
- Who is it for?
- Adopt Nearby Glasses if you want a local, no-telemetry BLE scanner that maps company IDs to known smart glasses vendors, and you accept that the README calls the result a heuristic with likely false positives and misses. Do not adopt it if you intend to confront anyone based on an alert: the README states plainly that harassing someone you believe is wearing a covert surveillance device can be a criminal offence, and that the warning may just as well come from a VR headset.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 7 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem Nearby Glasses is built to answer
The README opens with a single stated purpose: "Look for smart glasses nearby and warn you." That is the whole scope. The author's motivation section lists recorded raids, harassment of workers, LED recording indicators that can be disabled, and facial recognition on glasses as the reasons the app exists. The app is aimed at a person carrying a phone who wants a signal that a pair of camera-equipped glasses may be in Bluetooth range, not at an organisation building an access-control policy.
That audience matters for judging it. There is no server, no dashboard, no fleet management. The README states the app stores no details about you and collects no information about you or your phone, with no telemetry and no ads. The only data leaving the device is whatever you choose to export yourself: the README says the logfile contains only the manufacturer ID codes of BLE devices encountered, is recorded locally, and is not shared automatically. If you install through Play Store, the README notes Google may collect stats, and draws a line between that and the app itself.
Why the detection is a company-ID heuristic, not a device fingerprint
The mechanism is narrower than the name suggests, and the README is explicit about why. BLE uses randomised MAC addresses, the OSSIDs are not stable, and service announcement UUIDs are not persistent either; the README notes that some vendors such as Meta use proprietary Bluetooth services. Device names were the earlier approach, and the README strikes that through: "we can only rely on the communicated device names for now" is crossed out in the source text.
The approach the README calls currently most viable comes from the Bluetooth SIG assigned numbers repository. A BLE advertising frame carries a Manufacturer Specific Data field, and inside it a Company ID. The README walks through a captured ADV_IND frame showing Company ID 0x058E, labelled Meta Platforms Technologies, LLC, alongside RSSI and a 16-bit service UUID list. Nearby Glasses reads that company identifier and matches it against smart_glasses_identifiers.csv, the vendor list at the repository root.
The consequence is structural. A match tells you a device from a company that makes smart glasses is advertising nearby. It cannot tell you the device is glasses. The README says false positives are likely and names VR headsets of the same manufacturer as the example. An unlisted vendor, or a vendor whose glasses do not advertise a recognisable company ID, produces nothing.
Installing Nearby Glasses and reading your first scan
The repository publishes an Android app and an iOS app, with download links in the README for Google Play, IzzyOnDroid, Obtainium and the App Store. There is no command-line install. The README's build path is the Android and iOS project directories in the repository, and the section is titled "Build from Source"; the README does not spell out the Gradle invocation, so treat the two directories as the entry point rather than a documented build recipe.
If you build the Android side yourself, the project layout is the guide: the Android sources live under Android/ and the iOS sources under iOS/. The Gradle wrapper is the standard way in for a Kotlin Android project of this shape.
cd Android
./gradlew assembleDebugA successful run produces a debug APK under the Android build output directory. The README does not document the exact output path or a signing step for release builds, so verify those against the Gradle files in Android/ before you rely on them.
Once installed, the app's job is passive: it scans BLE advertising traffic and raises a notification when a manufacturer company ID in the packet matches an entry in the vendor list. The README's usage section is thin, and the screenshots in img/ show two modes, one labelled classic and one labelled canary. The README does not explain what canary mode changes, which is a gap worth knowing about before you assume the two modes differ in detection logic rather than presentation.
The vendor list is the part you can actually inspect and change. It is a CSV at the repository root, so the mapping from company ID to vendor name is auditable without reading Kotlin.
head -n 5 smart_glasses_identifiers.csvIf the vendor you are worried about is absent from that file, the app has no rule that can fire for it.
Where Nearby Glasses fails, by the author's own account
The README does not bury the limitations. It states that by technical design, detecting Bluetooth LE devices might sometimes just not work as expected. It states that false positives are likely, and that the app may also miss smart glasses nearby. It states the author is not a graduated developer and wrote the code in free time with self-taught knowledge.
Two failure modes follow. The first is a false alarm: a VR headset or another product from a smart glasses manufacturer advertises with the same company ID, and you get warned about glasses that are not there. The second is a silent miss: the glasses you care about do not advertise a company ID the app knows, and you get no warning at all. Neither is a bug in the sense of something to file and wait for a fix, because the detection rests on a field that identifies a manufacturer, not a product.
The README also carries two warnings in its own voice that are not about engineering. It states that harassing someone because you think they are wearing a covert surveillance device can be a criminal offence, possibly more serious than using such a device, and directs readers to seek legal advice on local law. It then repeats the instruction not to harass anyone at all. Any use of this app that ends in confronting a stranger is a use the project explicitly warns against.
There is also a naming problem the README flags directly: nearby-glasses-alert.pages.dev is not related to the project, and the author says similarly named apps in the Play Store and App Store do not adhere to the AGPL licence and are not endorsed. If you are looking for this app, check the package name ch.pocketpc.nearbyglasses and the repository, not the store search results.
The alternative: a general BLE scanner such as nRF Connect
The obvious substitute is a general-purpose BLE scanner. Nordic's nRF Connect and similar tools show raw advertising packets, including the Manufacturer Specific Data field and the company ID, and they do not attempt an interpretation. The difference in approach is the whole point: a scanner hands you the frame and lets you decide, while Nearby Glasses ships a vendor list and turns a company ID into a notification.
That trade is real in both directions. A scanner will show you a device that Nearby Glasses ignores because the vendor is not in smart_glasses_identifiers.csv, and it will not nag you about a VR headset, because it makes no claim about what the device is. What it will not do is run in the background and alert you while your phone is in your pocket. If continuous passive warning is the requirement, a manual scanner does not meet it, and if you want to understand what is actually in the air around you, Nearby Glasses' notification is a summary of a field you have not seen.
Maintenance, licence and what the repository tells you about cost
The repository is not archived, and the last push was on 2026-09-24. Releases are frequent and small: v1.0.9 on 2026-08-05, v1.0.10 on 2026-09-06, v1.0.11 on 2026-09-23. The version numbering and cadence suggest incremental work rather than a rewrite in progress.
Upgrade cost is low for users, because the app holds no account and no server state. Installing a new release replaces the scanner and the vendor list. The maintenance burden sits in smart_glasses_identifiers.csv: new smart glasses vendors and new company IDs have to be added there, and the README's own framing of the approach as "currently most viable" signals that the method could be displaced if vendors change how their devices advertise. Nothing in the repository guarantees the list stays current.
The licence is AGPL-3.0, with a LICENSE file, a LICENSES/ directory and a NOTICE file at the root. The practical implication for anyone embedding this code in another product is that the AGPL's network-use condition is the one to read carefully, since it can reach a service that exposes modified code to users over a network. That is a pointer to the licence text, not legal advice; the AGPL-3.0 terms govern. The README also states that similarly named apps in the stores do not adhere to the AGPL licence, which is the author's characterisation of those apps, not a legal finding.
Editorial conclusion
Adopt Nearby Glasses if you want a local, no-telemetry BLE scanner that maps company IDs to known smart glasses vendors, and you accept that the README calls the result a heuristic with likely false positives and misses. Do not adopt it if you intend to confront anyone based on an alert: the README states plainly that harassing someone you believe is wearing a covert surveillance device can be a criminal offence, and that the warning may just as well come from a VR headset. Before relying on it, open smart_glasses_identifiers.csv and check whether the vendor you care about has a company ID listed, because an unlisted vendor produces no alert at all.
Frequently asked questions
How does the Nearby Glasses app work?
It scans Bluetooth Low Energy advertising frames and reads the manufacturer company ID inside the Manufacturer Specific Data field, matching it against the vendor list in smart_glasses_identifiers.csv. When a company ID matches a known smart glasses vendor, the app warns you. The README describes this as a simple heuristic, because the company ID identifies a manufacturer rather than a specific pair of glasses.
Is there an app that can detect nearby smart glasses?
Nearby Glasses is one, published for Android and iOS with download links for Google Play, IzzyOnDroid, Obtainium and the App Store. The README states it may miss smart glasses nearby as well as warn about devices that are not glasses, so it is a warning tool rather than a reliable detector.
Can you tell if someone is wearing smart glasses?
The README says a match only means a device from a company that makes smart glasses is advertising nearby, and that false positives from VR headsets and similar products are likely. It also warns that acting on an alert by approaching or confronting someone can itself be a criminal offence, and advises seeking legal advice on local law.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/yjeanrenaud-yj-nearbyglasses)