← lebon.info bt-scanner:~$

// BLUETOOTH SURVEILLANCE SCANNER v1.0

STATUS IDLE
DEVICES 0
SURVEILLANCE 0
TRACKERS 0
SURVEILLANCE Smart glasses & covert recording devices
(Meta Ray-Ban, Snap Spectacles, Amazon Echo Frames, Vuzix, Epson Moverio…)
TRACKER Location trackers
(Apple AirTag, Tile, Samsung SmartTag, Chipolo…)
DEVICE Regular Bluetooth device

Detection uses Bluetooth manufacturer company IDs from the Bluetooth SIG assigned numbers embedded in BLE advertisement packets, combined with device name pattern matching. Manufacturer names are resolved against the full SIG registry (~4,300 companies) loaded from company_identifiers.yaml.

Surveillance devices are identified by manufacturer IDs for Meta, Luxottica (Ray-Ban), Snap Inc., Amazon, and others known to produce smart glasses or covert cameras. Trackers are identified by Apple FindMy, Tile, Samsung, and Chipolo manufacturer IDs or known service UUIDs.

BUNDLE ROTATING MACS merges nameless devices that share a manufacturer ID and reappear at a similar signal level right after another vanishes — the signature of privacy MAC rotation (phones, AirTags). It is a heuristic: treat bundles as educated guesses.

False positives are expected. A Meta company ID may indicate a Quest VR headset rather than Ray-Ban smart glasses. An Apple company ID may indicate an iPhone. Always use visual confirmation before drawing conclusions.

Do not harass anyone based on detections from this tool.

Why a local bridge? A webpage cannot access the Bluetooth radio directly — browsers only expose the experimental Web Bluetooth API, and on Windows its passive scanning never starts radio discovery (a known Chromium limitation, in Chrome, Edge and Brave alike). The bridge is a small Python script that runs on your own machine, performs the native BLE scan, and feeds live results to this page over 127.0.0.1:8437. Nothing leaves your computer: the bridge only listens on localhost and this page reads from it locally.

Local bridge mode (recommended, required on Windows):
1. ⬇ Download bt-bridge.py
2. Install the scanner library (once): pip install bleak
3. Start the bridge: python bt-bridge.py
4. Click [ START SCAN ] — the page connects automatically and shows every advertising BLE device your radio can see. Stop the bridge with Ctrl+C when done.
Requires Python 3.9+ (python.org).

Full scan mode (browser-only, Android/ChromeOS): Requires Chrome or Edge with the experimental Web Bluetooth scanning flag:
chrome://flags/#enable-experimental-web-platform-features
⚠ On Windows, Chromium's Web Bluetooth scanning does not start radio discovery — use the local bridge instead.

Single device mode (+ ADD DEVICE): Works in any Chromium browser with Web Bluetooth support over HTTPS.

Does not work in: Firefox, Safari, or HTTP (non-secure) connections (bridge mode excepted).

Seeing no devices? Only BLE devices that are actively advertising are visible. Classic Bluetooth devices (many speakers, mice, older headphones) never advertise over BLE, and devices already connected to a phone or laptop usually stop advertising. Trackers like AirTags advertise roughly every 2 seconds only when away from their owner. To verify your adapter sees packets at all, open chrome://bluetooth-internals → Adapter → Start Discovery.