This Quickstart goes from zero to a miniapp running on your glasses. You need a phone, Bun, and basic TypeScript. You can do the whole thing without glasses: the display just won’t have anywhere to draw.
Building a mobile app that connects directly to glasses over Bluetooth? Use the Bluetooth SDK Quickstart instead.
Looking for the @mentra/sdk cloud SDK? Apps used to be cloud-hosted servers built with @mentra/sdk. They’re now built on-device with the Mentra Miniapp SDK (@mentra/miniapp), which these docs cover. The older cloud SDK docs live at mentraglass.com/legacy.

Step 1: Install the Mentra App

Install the Mentra App on your Android or iPhone from MentraGlass.com/OS, sign in, and connect your glasses (if you have them).

Step 2: Scaffold a project

The scaffolder asks for a project name and the kind of glasses you’re targeting (display glasses like Even Realities G1/G2 and Vuzix Z100, or camera glasses like Mentra Live), then generates a ready-to-run two-layer project.
bun install pulls in @mentra/miniapp (the runtime) and @mentra/miniapp-cli (the mentra-miniapp tooling) automatically.

Step 3: Start the dev server

This validates your miniapp.json, builds both layers, serves them over your LAN, and prints a QR code plus a miniapp://dev?... URL. It hot-reloads on save and forwards the miniapp’s console logs back to your terminal.

Step 4: Load it on your phone

In the Mentra App, go to Settings → Developer settings → Mini App Development → Scan Mini App QR Code and scan the QR from your terminal.
Your phone and your laptop must be on the same Wi-Fi network. bun dev watches for Wi-Fi changes and reprints the QR if your LAN IP moves.
The miniapp installs and starts. In the starter project, pressing a glasses button shows text on the display, and opening the miniapp’s UI tile shows a round-trip latency demo between the UI and background layers.

Understanding the starter

A scaffolded miniapp has two entry points wired together by a shared, typed channel registry:
Background: owns the session and all glasses logic:
src/background/index.ts
UI: a normal React app that talks to the background over mentra. It has no direct hardware access:
src/ui/App.tsx
Shared channels: the single source of truth for what flows between the two layers, enforced at compile time:
src/shared/channels.ts

Next steps

Two-layer architecture

How background and UI work and communicate.

The session

Every capability you can reach on the glasses.

The manifest

Permissions, hardware requirements, and entry points.

Ship it

Pack a release and put it in front of users.