beacio-sdk

mcp
Security Audit
Warn
Health Warn
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • network request — Outbound network request in packages/core/src/detect/api.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Web Bluetooth SDK for iOS Safari https://ioswebble.com/

README.md

iOSbeacio SDK

Web Bluetooth SDK for iOS Safari. Scan, connect, and talk to BLE devices from any web app.

Packages

Package Purpose Size
@beacio/core BLE scanning, connecting, GATT read/write/subscribe ~4KB gzip
@beacio/detect iOS extension detection + install banner ~2KB gzip
@beacio/core/profiles Typed BLE profiles (heart rate, battery, etc.) Optional
@beacio/react React hooks (useDevice, useCharacteristic) Optional
@beacio/mcp MCP server for AI coding agents + the beacio scaffolding CLI (npx beacio init) Optional

Quick Start

npm install @beacio/core @beacio/detect
import { initBeacio, isIOSSafari } from '@beacio/detect';
import { beacio, BeacioError } from '@beacio/core';

// 1. On iOS Safari, detect the extension and prompt install if missing
if (isIOSSafari()) {
  await initBeacio({
    operatorName: 'MyApp',
    banner: { mode: 'sheet' },
    onReady: () => console.log('Extension ready'),
  });
}

// 2. Scan and connect (works on iOS Safari + Chrome + Edge)
const ble = new beacio();
const device = await ble.requestDevice({
  filters: [{ services: ['heart_rate'] }],
});

await device.connect();

// 3. Read a value
const value = await device.read('heart_rate', 'heart_rate_measurement');
console.log('Heart rate:', value.getUint8(1));

// 4. Subscribe to notifications
const unsub = device.subscribe('heart_rate', 'heart_rate_measurement', (v) => {
  console.log('Heart rate:', v.getUint8(1));
});

// 5. Clean up
unsub();
await device.disconnect();

For plain HTML (no bundler):

<script src="https://beacio.com/beacio.js"></script>

Error Handling

All errors are BeacioError instances with a typed code and a human-readable suggestion:

try {
  const device = await ble.requestDevice({
    filters: [{ services: ['heart_rate'] }],
  });
  await device.connect();
} catch (err) {
  if (err instanceof BeacioError) {
    console.log(err.code);       // e.g. 'DEVICE_NOT_FOUND'
    console.log(err.suggestion); // 'No matching devices in range'
  }
}

AI Agent Integration

MCP server for coding agents (Claude Code, Cursor, Copilot):

npx -y @beacio/mcp

Full SDK reference for LLM context: https://beacio.com/llms-full.txt

Documentation

Each package has its own README with full API reference:

Wiki

License

Proprietary. See individual package licenses.

Reviews (0)

No results found