RWR: onlooker alert
Warns you when someone behind you looks at your screen (shoulder surfing)
新版本 1.6.0
1.6.0: servers behind authentik.
- If your RWR server sits behind authentik forward auth (e.g. Nginx Proxy Manager + authentik), RWR now signs in with authentik in the browser (OAuth 2 + PKCE) and keeps working in the background. Setup: docs/authentik.md.
- If your RWR server sits behind authentik forward auth (e.g. Nginx Proxy Manager + authentik), RWR now signs in with authentik in the browser (OAuth 2 + PKCE) and keeps working in the background. Setup: docs/authentik.md.
RWR watches through the front camera for people looking at your screen from behind (shoulder surfers). When it sees one, it:
It runs in the background and can be switched on and off from the Quick Settings panel.
Detection
Private by design
Requires Android 10 or newer and a front camera. The pop-up needs the "Display over other apps" permission.
- pops up a card over whatever app you are using with a snapshot of the onlooker (boxed in red, with "laser eyes" showing where they look),
- posts a notification,
- saves a photo or a short video clip (for example 10 s before to 10 s after) to your gallery, and optionally to your own Immich server.
It runs in the background and can be switched on and off from the Quick Settings panel.
Detection
- Head tracking: a face turned toward the screen counts as looking. Lightest on battery.
- Eye tracking: follows the irises and combines them with head pose, so it alerts only when the eyes point at the screen.
- Your own face is recognised and ignored, and faces too far away to read the screen don't count.
- A debug view shows live what the detector sees and why each face counts or not.
Private by design
- Detection runs on the phone, offline, with bundled open-source models (YuNet and MediaPipe Face Landmarker). No analytics, no ads, no accounts.
- Nothing leaves the phone unless you pair it with your own RWR server (Docker, open source, in the same repository). Then frames go only to your server, over TLS: detection runs there at full frame rate without draining your battery, and snapshots can be uploaded to Immich.
- The camera is always off while the screen is off. Android shows its camera indicator while RWR is watching.
Requires Android 10 or newer and a front camera. The pop-up needs the "Display over other apps" permission.
捐助
版本
雖然在下方可選擇下載 APK 檔案,但要留意這樣的安裝方式將不會收到更新通知,是一種較不安全的下載方法。建議您先安裝 F-Droid 用戶端使用。
下載 F-Droid-
x86_64此版本需要 Android 10 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
arm64-v8a此版本需要 Android 10 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
armeabi-v7a此版本需要 Android 10 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
x86_64此版本需要 Android 10 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
arm64-v8a此版本需要 Android 10 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
armeabi-v7a此版本需要 Android 10 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
新版本 1.5.0
First F-Droid release (1.5.0).
- Face detection now uses the open-source YuNet detector (same as the RWR server) instead of Google ML Kit: about half the CPU, and good at small faces.
- MediaPipe's usage-statistics client can no longer send anything: its Google telemetry transport is replaced by a do-nothing stand-in.
- Fewer false alerts: far-away faces never count, every candidate face is verified, an onlooker must stay half a second.
- Face detection now uses the open-source YuNet detector (same as the RWR server) instead of Google ML Kit: about half the CPU, and good at small faces.
- MediaPipe's usage-statistics client can no longer send anything: its Google telemetry transport is replaced by a do-nothing stand-in.
- Fewer false alerts: far-away faces never count, every candidate face is verified, an onlooker must stay half a second.


