Skip to content

BLE ​

Implementation: experimental · Proposal: in-review (status checked 2026-10-31). GATT binding has unit coverage; real-device behavior across host backends is not established by these tests. All capabilities remain subject to change. Maturity and opt-in policy.

Runtime-mediated Bluetooth LE/GATT sessions. Napplets receive opaque session ids and byte arrays while the shell owns chooser UI, permissions, device handles, GATT lifecycle, notifications, disconnects, and policy.

ts
if (window.napplet?.ble) {
  const { session } = await window.napplet.ble.open({ acceptAllDevices: true });
  const services = await window.napplet.ble.services(session.id);
}

This non-normative guide defers to the living NAP-BLE proposal. Feature-gate with if (window.napplet?.ble) before use; the runtime injects only available domains. Typed helpers ship from @napplet/nap/ble and @napplet/sdk.

Released under the MIT License.