> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mentraglass.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Distribution

> Pack a release and get your miniapp onto users' glasses.

A miniapp is a **bundle that runs on the user's phone**: there's no server to
host, no domain, no uptime to manage. Distribution means producing that bundle
and getting it installed. There are three ways to get a miniapp onto a device,
from quickest to widest reach.

<Warning>
  **The Mentra Miniapp SDK is in beta.** It has not been thoroughly tested yet,
  so it ships behind a developer toggle in the Mentra App rather than on by
  default. Open **Settings → Debug Settings**, enable **Miniapp Developer
  Settings**, then return to Settings and open **Miniapp Developer Settings**.
  If Debug Settings is hidden, tap the version number at the bottom of Settings
  ten times to reveal it.

  These docs describe the SDK as it stands today. Both the SDK and the docs are
  subject to change, and some of it will change based on what beta testers run
  into.

  Please tell us what you hit. File a bug report from inside the Mentra App,
  post on [Discord](https://discord.gg/5ukNvkEAqT), or email
  [help@mentra.glass](mailto:help@mentra.glass).
</Warning>

<Info>
  **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](https://mentraglass.com/legacy).
</Info>

## 1. Dev install (you, iterating)

While you're building, [`mentra-miniapp dev`](/app-devs/reference/cli#dev) serves
your project over the LAN with hot reload. Scan the QR from the Mentra App and
your changes reload on save. This is the inner loop; see the
[Quickstart](/app-devs/getting-started/quickstart).

Dev mode is not an installation: the computer and CLI must remain running to
serve each miniapp's runtime bundle. The Mentra App keeps a separate dev entry
for each manifest package name and caches its name and icon, so you can scan and
test multiple dev miniapps together. Rescanning the same package updates that
entry. Use a release install when you want the miniapp to run without the
computer.

## 2. Release install (sharing a build over LAN)

To put a real, installed build on one or more phones without going through the Mentra Miniapp Store, run:

```bash theme={null}
mentra-miniapp release
```

This builds, packs, and serves the bundle behind a `miniapp://release` QR. Anyone
on the same network can scan it to install. The miniapp installs on the device,
**runs offline, and persists across restarts**: no laptop required once it's
installed. Great for testers, demos, and dogfooding.

Each install is logged in your terminal, and the server stays up so multiple
devices can install from the same QR.

## 3. Store submission (reaching everyone)

To reach users who aren't on your network, publish to the Mentra Miniapp Store.
The artifact is the ZIP produced by:

```bash theme={null}
mentra-miniapp pack
```

Submit `build/<packageName>-<version>.zip` through the Developer Console. Make
sure your [`miniapp.json`](/app-devs/core-concepts/miniapp-manifest) is accurate
before you pack: its `hardwareRequirements` decide which glasses can see your
miniapp, and its `permissions` drive the OS prompts users see.

<Note>
  Camera, photo, and live-streaming features run through the on-glasses Bluetooth
  stack, not a cloud server. See the [Bluetooth SDK docs](/mentra-live/overview)
  for those workflows.
</Note>

## Versioning

Bump `version` in `miniapp.json` for every release you distribute. The CLI names
the artifact `<packageName>-<version>.zip`, and installed miniapps are stored per
version (`lmas/<package>/<version>/`), so a new version installs cleanly alongside
or over the old one.

## Next steps

<CardGroup cols={2}>
  <Card title="CLI reference" icon="terminal" href="/app-devs/reference/cli">
    `dev`, `release`, and `pack` in detail.
  </Card>

  <Card title="The manifest" icon="file-code" href="/app-devs/core-concepts/miniapp-manifest">
    Get permissions and hardware requirements right before you ship.
  </Card>
</CardGroup>
