MentraOS
The open source operating system and SDK that lets developers build one app and run it across smart glasses from Even Realities, Vuzix, Mentra Live, and more.
MentraOS is an open source operating system, developer SDK, and app store for smart glasses. Rather than each glasses manufacturer shipping its own closed SDK, MentraOS provides a single ‘Mentra Runtime’ that runs on the user’s phone, bridges to the glasses over Bluetooth, and exposes one consistent session-based API — display, camera, microphone, speaker, transcription, translation, location, notifications, and more — so a third-party developer can write a ‘MiniApp’ once and have it run across multiple supported hardware brands.
The project is a genuine monorepo covering the whole stack: a cloud backend (cloud/, with an in-progress horizontally-scalable rewrite in cloud-v2/) built on Bun and Hono with native WebSocket handling and MongoDB for persistence; a React Native/Expo mobile app (mobile/) that hosts the Mentra Runtime and can run several MiniApps simultaneously against one glasses connection; a native Android client (asg_client/) that runs directly on Android-based smart glasses hardware, complete with its own OTA update and recovery tooling; and a TypeScript SDK (@mentra/sdk) plus a CLI and example MiniApps (live captions, translation, teleprompter, navigation, photo/video recording) that third-party developers use to build their own glasses apps.
Every piece is MIT-licensed, which the project leans into as a selling point: glasses manufacturers can embed the open source Mentra Runtime directly into their own branded iOS/Android apps to get an app ecosystem without building one from scratch, and anyone can self-host the backend instead of relying on Mentra Labs’ hosted MiniApp Store and Developer Console. The company behind it (Mentra Labs, a YC-backed startup) also ships its own consumer mobile apps and Mentra Live glasses hardware, but the software that runs the ecosystem — cloud, mobile, glasses firmware client, and SDK — is all included in this repository.
Development activity is heavy: the repo has accumulated thousands of commits with near-daily pushes, dozens of tagged releases, and a large GitHub Actions CI matrix that builds and tests each sub-project (cloud, cloud-v2, console, store, SDK, mobile Android/iOS, ASG client, Bluetooth SDK) independently.
What You Get
- A phone-side Mentra Runtime (Expo/React Native) that bridges Bluetooth-connected smart glasses to the cloud and can run multiple MiniApps at once
- A TypeScript SDK (
@mentra/sdk) with a single session object exposing typed managers for display, camera, mic, speaker, transcription, translation, location, notifications, storage, and permissions - A cloud backend (
cloud/, plus an in-progresscloud-v2rewrite) with WebSocket session management, multi-provider transcription/translation, and MongoDB persistence that you can self-host end to end - A native Android client (
asg_client/) that runs directly on Android-based smart glasses hardware, including its own OTA firmware update and recovery tooling - Ready-to-run example MiniApps — live captions, translation, teleprompter, navigation, and photo/video recording — as starting points for new apps
- A hosted Developer Console and MiniApp Store (source included) for registering, publishing, and distributing glasses apps
Common Use Cases
- Hands-free live captioning of spoken conversation for accessibility or noisy environments
- Real-time translation of spoken language while traveling or in cross-language meetings
- Field service and remote support apps that stream a technician’s point-of-view and push instructions to their display
- Teleprompter apps that scroll notes in a presenter’s field of view
- Enterprise workflow apps for warehouse, training, or compliance-sensitive work instructions
- OEM white-labeling, where a glasses manufacturer embeds the open source runtime into their own branded app
Under The Hood
Architecture
MentraOS is a distributed, event-driven system spanning four cooperating codebases in one monorepo: Android-based glasses hardware running the asg_client native client, a phone-side ‘Mentra Runtime’ (the Expo/React Native mobile app) that bridges Bluetooth to the outside world, a cloud backend (cloud, with a parallel cloud-v2 rewrite underway) that manages WebSocket sessions, and third-party ‘MiniApp’ servers built against the @mentra/sdk. On the cloud side, a central UserSession class acts as a composition root that aggregates a large set of single-responsibility managers — audio, device, location, microphone, photo, subscription, transcription, translation, calendar, and user-settings managers — rather than putting that logic in one monolith, and separate WebSocket handler services exist for glasses connections versus app connections, mirroring the two distinct client types the system serves. Running two parallel cloud implementations (the established cloud service and the in-progress cloud-v2 rewrite aimed at horizontal scalability and OEM self-hosting) adds real complexity today, and if the shared session abstraction changes, every manager and both WebSocket paths depend on it and would need to change in lockstep.
Tech Stack
The cloud backend runs on the Bun runtime with the Hono web framework and Bun’s native WebSocket support, backed by MongoDB via Mongoose, JWTs via jose, and (in the cloud-v2 rewrite) Zod validation and Redis; structured logging goes through Pino, shipped onward to BetterStack, with Sentry for error tracking. The mobile runtime is an Expo/React Native TypeScript app with dedicated native modules for Bluetooth and MiniApp bridging, tested with Jest and Maestro end-to-end flows. The Android glasses client is a native Java/Gradle application using Dagger Hilt for dependency injection and EventBus for component communication, with its own OTA update and recovery-worker tooling. The developer-facing SDK, CLI, and React SDK are published as separate TypeScript packages, and public documentation is built with Mintlify.
Code Quality
The monorepo carries an extensive test footprint across its sub-projects — unit tests in the cloud service, a comprehensive suite in the mobile app plus Maestro end-to-end flows, and a large body of Java tests in the Android glasses client — backed by a correspondingly large GitHub Actions CI matrix that builds and tests each sub-project independently (cloud, cloud-v2 per-environment deploys, console, store, SDK, mobile Android/iOS, ASG client, Bluetooth SDK). TypeScript strict mode is enabled across the JavaScript/TypeScript packages, ESLint and Prettier enforce consistent style, and the Android build enforces formatting via Spotless and Google Java Format. Error handling shows deliberate intent rather than silent failure: the cloud entry point installs an explicit unhandledRejection handler with inline comments referencing specific past incident write-ups, choosing to log and continue rather than let one bug take down every connected user’s session.
What Makes It Unique Most smart glasses manufacturers ship a closed, single-device SDK, forcing developers to rebuild the same app per vendor. MentraOS’s differentiator is the ‘Mentra Runtime’ abstraction: one MIT-licensed, phone-side runtime that normalizes hardware differences across multiple glasses brands behind a single session API, can run several MiniApps concurrently against one physical connection, and is fully open source down to the glasses-side Android client and its OTA firmware tooling — open enough that a hardware manufacturer could embed the runtime directly into their own branded app. That combination of cross-vendor abstraction plus a completely open, self-hostable stack is a genuinely distinctive approach in a category where the norm is closed, single-vendor tooling, even though the underlying building blocks (WebSocket bridging, session managers, BLE integration) are standard techniques rather than novel inventions.
Self-Hosting
Licensing Model MIT licensed — the cloud backend, mobile runtime, Android glasses client, and SDK are all open source with no separate enterprise tier or license keys required.
Self-Hosting Restrictions
None found. Searching the codebase for common license-gating patterns (requiresLicense, isEnterprise, isPro, feature-flag gates) turned up no self-hosting restrictions in any package.
Enterprise Features There is no separate paid enterprise tier in the codebase. Mentra Labs instead operates hosted infrastructure (the MiniApp Store and Developer Console) as a convenience layer on top of the same open source code that self-hosters can also run themselves.
Cloud vs Self-Hosted
The hosted MiniApp Store and Developer Console (cloud/websites/store, cloud/websites/console) are the same source that ships in this repository — using Mentra Labs’ hosted version trades operational work for convenience rather than unlocking extra functionality.
License Key Required No.
Related Apps
Ollama
AI Development · Developer Tools
Run Llama, Gemma, DeepSeek, and other open LLMs on your own machine with one command and an OpenAI-compatible API.
Ollama
MITLangflow
AI Agents · AI Development
Build, test, and deploy AI agents and RAG workflows visually with native API and MCP server export.
Langflow
MITDify
No Code Platforms · AI Development · Developer Tools
Visual LLM workflow platform with RAG pipelines, agent capabilities, and model management for building production AI applications.