What it is
The Mentra OEM Integration Engine is all of MentraOS’s phone-side logic packaged as a library you embed in your own app. Your users stay in your app and on your brand, but they get the full MentraOS experience: the Mentra Miniapp Store, installable miniapps, and the same developer ecosystem that powers the Mentra App. The engine owns everything between your glasses and Mentra’s backend services:- Mentra Miniapp Store + runtime: discover, install, and run miniapps on the phone.
- Glasses I/O: display rendering, microphone/audio routing, and the rest of the glasses feature set.
- Backend connectivity: talking to Mentra’s backend services for the store, transcription, translation, streaming, and photos.
Integrating in four moves
1. Install the engine
Add the engine to your app, using the path that matches how your app is built:- React Native / Expo: install the engine as a module.
- Native (iOS / Android): embed the native libraries (iOS framework, Android library) directly.
- Flutter: embed the native libraries and bridge them into Flutter through platform channels.
2. Configure the engine
You give the engine a single configuration when your app boots. The engine manages its own settings internally. The only things you hand it are what’s yours:- Your identity: how your users are signed in (see Backend connectivity).
- Optional proxy: if you route Mentra’s backend services through your own infrastructure, you pass your proxy here (see below).
3. Connect to the backend services
The engine talks to two tiers of Mentra backend services:- Mentra Runtime Services. The capabilities the engine relies on: speech-to-text, text-to-speech, translation, live streaming, and photo handling. Self-hostable and/or proxyable (run your own, route through your proxy, or both).
- Mentra Cloud Core Services. The Mentra Miniapp Store, the developer console, and the OEM APIs. Proxyable only (always Mentra-hosted, optionally reached through your proxy).
4. Register your glasses
The engine talks to glasses through a Glasses Adapter: a contract that describes one model of glasses. You implement an adapter for your hardware, in your own app, against your own Bluetooth stack, and register it at startup. The engine then treats your glasses as a first-class device, exactly like the glasses Mentra ships. An adapter declares two things: capabilities (what your glasses have) and behavior (how to drive each feature over your BLE link). You declare and implement only what your hardware actually has. Example: a display + mic device with a touchpad and an IMU (no camera). This is the common OEM shape today (think Even Realities G2): a monochrome text display, a microphone, a capacitive touchpad, and an IMU, no camera. Here’s the whole adapter for one. Declare your capabilities. Same capability shape the engine uses for every device it supports. Fill it in for your hardware. This device declares a display, a microphone, an input surface, and an IMU, and leaves the rest out:Why this works
- Your hardware, no fork. The Glasses Adapter is your private extension point. Add or change a model entirely within your app.
- Your app, your brand. Users never leave your app or see a Mentra account. The engine is a library inside your experience, not a separate app.
- One shared ecosystem. Every OEM’s users and developers live in the same MentraOS ecosystem. That’s what makes the Mentra Miniapp Store worth being part of.
- You decide what you host. Use Mentra’s backend services as-is or route them all through your own proxy.

