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.
Every miniapp has a miniapp.json at its root. It declares who the miniapp is, where its two layers are built to, what permissions it needs, and what hardware it requires. The CLI validates it on every dev, pack, and release: bad values fail on your laptop, not on the phone.
miniapp.json

Fields

Required: packageName, version, name, hardwareRequirements. Everything else is optional. The $schema line points editors at the JSON Schema shipped with the CLI, so you get autocomplete and validation as you type. create-mentra-miniapp adds it for you; you can also print the schema with mentra-miniapp schema print.

Permissions

Each entry is { "type": "...", "description": "..." }. The optional description is shown to the user in the OS permission prompt.
Declaring a permission is not the same as the user granting it. session.permissions.has(type) reports what you declared in the manifest, not the live OS grant. If the user denied the OS prompt, your subscriptions simply receive nothing. See Permissions.

Hardware requirements

Each entry is { "type": "...", "level": "...", "description"?: "..." }.
  • REQUIRED: glasses without this hardware can’t install the miniapp (when Store distribution becomes available, it will be hidden in the Mentra Miniapp Store and launcher on incompatible devices).
  • OPTIONAL: incompatible glasses still run the miniapp, in a degraded state.
MICROPHONE means that the miniapp needs audio input. MentraOS satisfies this requirement with the connected glasses microphone when one is available and falls back to the phone microphone otherwise. A miniapp that requires audio is therefore compatible with glasses such as the Vuzix Z100 that do not have an onboard microphone.

Editing the manifest

You can edit miniapp.json by hand, or use the CLI’s guided commands:
See the CLI reference for all of them.