Install · Build · orgista.com
OpenQR reads QR codes through the Quest passthrough camera and opens the link in the system browser. Look at a code, tap Scan, and the page opens.
- Reads QR codes from the headset passthrough camera
- Decodes on the device with ZXing, no network needed to scan
- Opens
httpandhttpslinks in the external browser - Rejects everything else (other schemes, links with embedded credentials) and shows "Web link only"
- Camera mode toggle shows a live preview before you scan
- Runs as a resizable 2D window (384 x 500 dp default) beside your other apps
- Stops the camera when the window loses focus or pauses
- Native Kotlin app, ZXing core for decoding
There are no published releases yet. Build the APK (see below), then install it over ADB with your headset in developer mode:
adb install -r app/build/outputs/apk/debug/app-debug.apkThe debug build installs as com.orgista.openqr.debug. On first launch, allow camera access when prompted.
| Device | Minimum | Notes |
|---|---|---|
| Meta Quest 3 | Android API 34 | Passthrough camera access required |
| Meta Quest 3S | Android API 34 | Passthrough camera access required |
The manifest restricts the app to quest3 and quest3s. It requests the standard CAMERA permission and the Horizon OS HEADSET_CAMERA permission.
Prerequisites: Java 17, Android SDK 34, and the Gradle wrapper included in this repo.
git clone https://github.com/orgista/openQR.git
cd openQR
./gradlew assembleDebug| Command | Description |
|---|---|
./gradlew assembleDebug |
Debug APK at app/build/outputs/apk/debug/ |
./gradlew assembleManaged |
Minified build signed with the debug key, installs as com.orgista.openqr.debug |
./gradlew test |
Unit tests |
Camera frames are processed on the device. OpenQR asks for no network permission and has no account, backend, or analytics. The only thing it sends anywhere is the link you scan, and it hands that to your browser.
- openPDF: a PDF reader for Meta Quest
Issues and pull requests are welcome. Keep changes small and describe how you tested them on a headset.
