Skip to main content
Mentra Miniapp SDK betaThe SDK is in beta, so its APIs may change before general availability.There is currently no way to distribute a miniapp built with the Miniapp SDK. In a future release, developers will upload miniapps through the Mentra Developer Console, and users will download them from the Mentra Miniapp Store. Neither service supports Miniapp SDK distribution in MentraOS 3.0.Only use the Miniapp SDK if you are comfortable with these limitations.Developing on Mentra Live? We recommend using the Mentra Bluetooth SDK.The developer tools are available in the Mentra App under Settings → Miniapp Developer Settings.Share feedback with an in-app bug report, on Discord, or by email at help@mentra.glass.
@mentra/miniapp-cli provides the mentra-miniapp command. It’s installed as a dev dependency in every scaffolded project, so your package.json scripts call it directly ("dev": "mentra-miniapp dev").
Run with no arguments to print the usage table.
The CLI is Bun-only: it ships as TypeScript and runs under Bun. Use bun (or bunx), not npx/Node.

dev

Validates miniapp.json, builds both layers, serves them over your LAN, and prints a QR (and a miniapp://dev?... URL). It also runs a dev sidecar WebSocket on the next port up for live reload and console-log forwarding back to your terminal (non-fatal if it can’t start). It watches for Wi-Fi/LAN-IP changes every 10 seconds and reprints the QR. The starting port comes from "port" in miniapp.json (default 3000); if it or its sidecar neighbor is busy, the CLI scans upward for a free adjacent pair. On the phone: In the Mentra App, open Settings → Miniapp Developer Settings → Scan Miniapp QR Code. Phone and laptop must share Wi-Fi. Ctrl+C stops everything.
dev is live and temporary. Keep the CLI and computer running: the Mentra App loads the runtime bundle from that LAN server. Dev miniapps are keyed by their manifest package name, so you can scan and test several side by side; rescanning the same package updates only that entry. The Mentra App caches each entry’s name and icon. Use bun run release for an installed miniapp that works without the computer.

release

The all-in-one path for putting a build on real devices: validate → build → pack → serve behind a QR so you can install on as many phones as you want. It reuses a cached build/<pkg>-<version>.zip when every source file is older than the zip, otherwise rebuilds (auto-detecting your package manager from the lockfile). It serves the bundle, manifest, and icon over HTTP on 0.0.0.0 and prints a miniapp://release?... QR, then stays up so multiple devices can install. Each install logs a line. Installed miniapps run offline and persist across restarts; no laptop needed after install.

pack

Produces the release artifact only (release calls this internally). It builds with NODE_ENV=production, verifies dist/, validates the manifest, copies miniapp.json + icon.png into dist/, and zips to build/<pkg>-<version>.zip. In a future release, this ZIP will be uploaded through the Mentra Developer Console for distribution in the Mentra Miniapp Store. That distribution workflow is not available in MentraOS 3.0.
pack requires the zip binary on PATH (preinstalled on macOS and most Linux; on Windows use WSL). build/ self-ignores from git.

manifest

An interactive wizard for miniapp.json: edit permissions and hardware requirements, show the current manifest, or finish. It saves after each confirmed change, so Ctrl+C never loses a saved edit.

permission and hardware

Object-verb edits that share the wizard’s validation:
Permission TYPE: MICROPHONE, CAMERA, CALENDAR, LOCATION, BACKGROUND_LOCATION, READ_NOTIFICATIONS, POST_NOTIFICATIONS. Hardware TYPE: CAMERA, DISPLAY, MICROPHONE, SPEAKER, IMU, BUTTON, LIGHT, WIFI; LEVEL: REQUIRED, OPTIONAL. See the manifest for what each means.

schema

Prints the canonical miniapp.json JSON Schema to stdout: useful for CI validation or IDE config. The same schema ships at node_modules/@mentra/miniapp-cli/schema/miniapp.schema.json, which the $schema line in a scaffolded miniapp.json references for editor autocomplete.