Skip to content

RWR

GitHub revocx35/rwr

Install RWR

Download Zapstore

Download
QR code for zapstore.dev/download
  • Scan the code with your phone’s camera
  • Tap Download anyway if the browser warns about the file
  • Allow your browser to install unknown apps if Android asks
  • Open Zapstore and finish the onboarding

Open RWR in Zapstore

Open
QR code to open RWR in Zapstore
  • Scan the code to open RWR in Zapstore, or search for it there
  • Tap Install, and Download if Zapstore asks you to confirm the developer
  • Confirm in Android’s install dialog. Allow Zapstore to install unknown apps if Android asks

Unclaimed app

The catalog lists RWR from GitHub revocx35/rwr and signs its releases. The developer has not claimed it. The file is still checked before you install it.

Are you the developer? Cryptographically prove you hold the key that signs it.

How trust works

Watches through the front camera for people looking at your screen from behind. When it sees one, it pops up a card with a snapshot of the onlooker, posts a notification, and saves a photo or video clip to your gallery.

RWR watches through the front camera for people looking at your screen from behind (shoulder surfers). When it sees one, it:

  • 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.

Summary generated by Zapstore from source.

Original description, as the developer published it.

Zap RWR

Zapping anonymously. Sign in to zap with your identity.

No developer has verified this app yet, so sats go to npub1gnwq4…thdn3y, the catalog that brought it to you.

Amount in sats

Latest release

Oct 20, 2026

Unclaimed app No Google servicesSource available · GPL-3.0-only

The catalog lists this app from GitHub revocx35/rwr and signs its releases. The developer has not claimed it. Are you the developer? Claim your app

Uses the camera to watch for onlookers and draws an alert overlay over other apps. Camera frames are sent to a user-paired server when that mode is enabled.

Permissions

  • Camera CAMERA Take photos and record video To scan QR codes and detect faces via the front camera.
  • Notifications POST_NOTIFICATIONS Send you notifications
  • Overlay SYSTEM_ALERT_WINDOW Draw over other apps To display alert overlays with snapshots.

Release notes

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 when pairing (OAuth 2 + PKCE), keeps an encrypted, revocable sign-in and renews it in the background. If authentik asks again, RWR shows a notification and a Sign in with authentik button in the Server section.
  • No server update needed. Setup: docs/authentik.md (authentik client rwr-android).

SHA-256:

87e8559ebc6d983399bb1062553ca0f4b54ea8ce33f69ae9de187b2a0650f91e  RWR-1.6.0-arm64-v8a.apk
d43f0291641220ea0de19eb1e894972608080b5e13267bcd2a7bd0989c36cd36  RWR-1.6.0-armeabi-v7a.apk
bcf73d340345c2e6aaff1f77aa8ba0a7dff293b0e63b6f7438213249b51ce6a6  RWR-1.6.0-universal.apk

Signing certificate SHA-256: 0cc47cbec28c72addf57966d8aecf04e1636bc18d6dd75dfc90f2c47ee5d6675

Comments

Loading comments…

See more

Get RWR the private way

Updates checked on your device, and every release verified before it installs.

Get Zapstore for Android

  1. Tap Download APK below.Scan the code with your Android phone’s camera.
  2. If Android asks, allow your browser to install unknown apps.
  3. Open Zapstore and finish the onboarding.
Download APK

v2.0.4 · 71.2 MB · Android 10+

Verify the download

On a computer, run shasum -a 256 <the file you downloaded>. It should print: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

If you have zsp, Zapstore’s publishing tool, zsp utils extract-apk <the file you downloaded> works too. Its hash should be the same SHA-256: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

On the phone, AppVerifier should show this signing certificate: 99e33b0c2d07e75fcd9df7e40e886646ff667e3aa6648e1a1160b036cf2b9320

Source code All releases and notes

Get zsp

  1. Download the file for your computer.
  2. Make it executable and put it on your PATH.
  3. In your project folder, run zsp.

Have Go? This does the same:

go install github.com/zapstore/zsp/v2/cmd/zsp@latest
macOS, Apple silicon Linux, x86-64 Linux, arm64

v2.0.1 · macOS and Linux

Verify the download

On your computer, run shasum -a 256 <the file you downloaded>. It should print the SHA-256 for the one you chose.

macOS, Apple silicon · 18.6 MB 99018fb9744e5ace2b44557550dc333496239912c0e9b1137266d4922c803346

Linux, x86-64 · 23.8 MB 1ef5373f8ecd9ba63d2c3fab98abb0d31b2244a2aac31b3749fb205c7d5f5b38

Linux, arm64 · 22.1 MB e421005ee47cba58293dce4277bb784e4cfe706dbbcb8617d671629d0238be18

Source code All releases and notes