Case study
Visor: an independent Ray-Ban Meta glasses client
Implements an Android replacement for the Meta AI companion app that speaks the Ray-Ban Meta glasses’ own Bluetooth and Wi-Fi Direct protocol, imports media, exposes settings and answers “Hey Meta” with a model the user chooses. The project wiki documents the link layers, encryption, services and Meta-side ownership steps, and lists 153 open questions. Testing is on real glasses rather than test suites, so behavior beyond the stated model and firmware remains unverified.
- Targets
- App · Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Reviewed just after release v1.3.1 (2026-10-18). README targets Ray-Ban Meta (Gen 2) tested on firmware 72387580077200100; other Meta glasses are untested. It needs an Android 10+ phone, a Meta account using password or email-code login (passkeys do not work) and, for the assistant, an Anthropic or OpenAI-compatible API key. The glasses accept one session at a time, so Visor and the Meta AI app displace each other.
- Prerequisites: Setup makes Visor the glasses’ owner app through Meta’s login and ownership-receipt services, so it still depends on a Meta account and Meta servers for setup, frame style and language packs. Source builds need three client tokens from the official Meta AI app, which the repository does not include; without them the app builds but login and ownership fail. Release builds read them from CI secrets.
- Prerequisites: Building needs JDK 21 and the Android SDK with platform 37. CI builds a debug APK with Gradle, and tagged releases publish a signed APK with a SHA-256 file; README lists the release certificate fingerprint. Modules separate wire format and ciphers, transport, session, identity, media, settings and the assistant, which stands in for Meta’s server with Claude or an OpenAI-compatible model.
- Testing evidence: There are no test suites: CONTRIBUTING asks for hardware trials and wire.log excerpts for protocol changes, and CLAUDE.md says the app works on real glasses as of 2026-10-05. The wiki marks unconfirmed facts and lists open questions, including unread payloads and model-specific values; CLAUDE.md also refers to a desktop Python client snapshot that the repository does not contain.
- License: Visor is AGPL-3.0 and states it is unaffiliated with Meta or EssilorLuxottica; Meta’s services, app tokens, firmware and trademarks keep their own terms. CONTRIBUTING forbids getting unsigned software past the glasses’ signature checks. Claude is one selectable assistant backend, and the repository’s CLAUDE.md is a contributor guide.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · macedonga/visor · Revision 8caaa12
- CLAUDE.md GitHub · macedonga/visor · Revision 8caaa12
- CONTRIBUTING.md GitHub · macedonga/visor · Revision 8caaa12
- SECURITY.md GitHub · macedonga/visor · Revision 8caaa12
- LICENSE GitHub · macedonga/visor · Revision 8caaa12
- app/build.gradle.kts GitHub · macedonga/visor · Revision 8caaa12
- .github/workflows/build.yml GitHub · macedonga/visor · Revision 8caaa12
- .github/workflows/release.yml GitHub · macedonga/visor · Revision 8caaa12
- core/protocol/src/main/kotlin/com/macedonga/visor/core/protocol/Framing.kt GitHub · macedonga/visor · Revision 8caaa12
- core/protocol/src/main/kotlin/com/macedonga/visor/core/protocol/Cipher.kt GitHub · macedonga/visor · Revision 8caaa12
- core/assistant/src/main/kotlin/com/macedonga/visor/core/assistant/Brain.kt GitHub · macedonga/visor · Revision 8caaa12
- https://github.com/macedonga/visor/wiki/Home/7358c5a1c39a6354d2170f89133b184f7f2b82e7
- https://github.com/macedonga/visor/wiki/Protocol-overview/7358c5a1c39a6354d2170f89133b184f7f2b82e7
- https://github.com/macedonga/visor/wiki/Meta-login-and-ownership/7358c5a1c39a6354d2170f89133b184f7f2b82e7
- https://github.com/macedonga/visor/wiki/Open-questions/7358c5a1c39a6354d2170f89133b184f7f2b82e7
More in Apps
- wine-uwp: running packaged Windows Store apps on a patched Wine · Case study
- RKD Telemetry Extractor: decoding Race-Keeper track-day recordings · Case study
- Elgato HDR: a userspace capture path for the Elgato 4K X’s 10-bit mode · Case study
- LGwebOS-menubar: a native macOS remote for LG webOS TVs · Case study
- Galaxy Buds Client: an unofficial manager built on Samsung’s earbud protocol · Case study
- Wino Mail: recreating Windows Mail and Calendar · Case study