Even Realities G2 · personal build · Android only

Your texts,
on your glasses.

Read and reply to SMS and RCS on Even Realities G2 — by voice, heads up, hands free, driven from the R1 ring on your finger. Android only. Everything runs on the phone in your pocket. No cloud service, no account, no API key, and it works in airplane mode.

Get the app

Android 8+ and a pair of Even Realities G2. There is no iPhone version, and there cannot be one — iOS gives no app access to your messages. The glasses half comes from the Even Hub store and does nothing without this app.

tap

Every action is a tap, swipe or double-tap on the R1 ring — the temple touchpad emits the same gestures.

576 × 288 · 16 shades of green · shown at actual size on a desktop display

The constraint is the brief

The glasses are a display and an input terminal over a 10–30 KB/s Bluetooth link. You never draw pixels — you create containers and update them through a bridge. Every design decision here was made against a limit rather than chosen from a menu, and the tightest limit is arithmetic: each control row costs about 40 of the 288 vertical pixels, so three buttons leave roughly four lines for the message.

Canvas
576 × 288Per eye, origin top-left
Colour
4-bit grey16 levels of green. No colour, ever
Input
Tap · swipePlus double-tap. No hold, no keyboard
Audio
16 kHz inFour mics. No speaker, no audio out
Lists
14 × 46Docs say 20 × 64; the device disagrees
Link
BLEA page render is a network round trip

Why there are two halves

The glasses cannot do this alone — no SIM, no messaging stack, no access to your messages. The surprising part is that the glasses app cannot either. An Even Hub app is not native code on the glasses; it is a web app running in a WebView inside the Even phone app. It is already on your phone, and it is still sandboxed browser JavaScript.

JavaScript in a WebView cannot read content://sms, cannot call SmsManager to send, cannot register a NotificationListenerService — the only way to see RCS at all — and cannot reach the platform's SpeechRecognizer.

Each of those is a native Android API behind a runtime permission and a real app identity. So the bridge exists to be the thing that holds the permissions.

Glasses
Display + input
  • 576 × 288, 16 greens
  • Tap, swipe, double-tap
  • Four microphones
Even app WebView
The plugin · TypeScript
  • Builds the containers
  • Captures dictation audio
  • Holds no permissions
Bridge app
Kotlin · Ktor · SQLite
  • SMS provider + SmsManager
  • Notification listener for RCS
  • On-device speech

Both halves live on the same phone, so localhost genuinely means localhost — the request never touches a network. That is what makes the privacy claim structural rather than a promise: the bridge binds loopback only, so the messages API is not merely protected from other devices on your Wi-Fi, it is unreachable from them. The bearer token is secondary, and could not be a secret anyway, since it ships inside an extractable package.

What it does

What it took

Most of the expensive defects were not logic errors. They were platform behaviours that fail silently — the build succeeds, the app installs, the screen renders, and something is quietly wrong.

The top button of every screen was dead.Protobuf drops all zero values, so a selected row index of 0 arrives as undefined — exactly like the click event, which is also 0.
A reply reached the wrong person.A loose phone-number suffix match let a short code capture a message meant for a contact. Matching is now strict and refuses on ambiguity rather than guessing.
Speech failed on every call, invisibly.A fallback engine answered plausibly while the primary never ran once. The fix was one field reporting which engine served each result.
Dictation lost the words after a pause.The recogniser was being fed audio a hundred times faster than it was spoken, and its endpointer is a time-based state machine built for a live microphone.

Try it

A test build, not a store release. You need an Android phone and a pair of Even Realities G2 glasses — the two apps below are both halves of the same thing, and neither is useful without the other.

ANDROID ONLY The glasses app talks to the Android app on your phone and does nothing without it. Installing it alongside an iPhone will not work.

01 — YOUR PHONE

G2 Bridge

The Android app that reads your messages and answers your glasses. Distributed through Firebase App Distribution, which is invite-only: ask for an invite and the link below is where the build lives.

Get the app

Android 8 or newer, 64-bit. Your phone will warn you about installing an app from outside a store — that warning is about the distribution method, not this app; some phones go further and label it a "risky app". Google Messages stays your default messaging app throughout.

02 — YOUR GLASSES

G2 Texting

The glasses app, from the Even Hub store. On first run it asks your phone for permission to connect — one tap on the phone and the two are paired for good.

Coming to the Even Hub store

Requires the Android app above — on its own it has nothing to talk to. No token, key or account to copy across: each install pairs with its own phone, and nothing about that handshake leaves the device.

Read the work

Everything below was written alongside the build, not reconstructed after it.