# beacio — navigator.bluetooth on iOS Safari > A Safari Web Extension that ships the standard W3C Web Bluetooth API on iPhone. > Free polyfill; premium capabilities on `window.webbleIOS`. ## Install - iPhone/iPad (App Store): install the free beacio companion app from the App Store, then enable the Safari extension (Settings > Apps > Safari > Extensions). The app is required on iOS for `navigator.bluetooth` to work in Safari. Setup guide: https://ioswebble.com/setup - npm: `npm install @beacio/core` then `import '@beacio/core/auto'` - React: `npm install @beacio/react` - MCP: `npx -y @beacio/mcp` - CDN (no-build alternative): `` ## Try it live - Live demo: https://ioswebble.com/demo Live scanner (no install needed to view). Runs `navigator.bluetooth` in Safari on a real iPhone once the free companion app and extension are enabled. ## Packages All packages are published under the `@beacio` scope on npm. - `@beacio/core` — Core SDK: scan, connect, read/write/subscribe, background sync - `@beacio/profiles` — Pre-built device profiles (heart rate, battery, device info) - `@beacio/react` — React hooks and components for BLE - `@beacio/detect` — Detect extension, show install banner - `@beacio/cli` — CLI scaffolding tool - `@beacio/mcp` — MCP server for AI agents - `@beacio/skill` — Agent skill metadata ## Canonical (agent-parseable) surfaces - Capability card: https://ioswebble.com/.well-known/agent.json - Agent manifest: https://ioswebble.com/agent-manifest.json - OpenAPI (JSON): https://ioswebble.com/.well-known/openapi.json - OpenAPI (YAML): https://ioswebble.com/openapi.yaml - Full corpus: https://ioswebble.com/llms-full.txt - Quickstart (html): https://ioswebble.com/docs-md/quickstart-html.md - Quickstart (react): https://ioswebble.com/docs-md/quickstart-react.md - Quickstart (vue): https://ioswebble.com/docs-md/quickstart-vue.md - Quickstart (svelte): https://ioswebble.com/docs-md/quickstart-svelte.md - Quickstart (angular): https://ioswebble.com/docs-md/quickstart-angular.md - Quickstart (next): https://ioswebble.com/docs-md/quickstart-next.md - API reference: https://ioswebble.com/docs-md/api-reference.md - Premium APIs: https://ioswebble.com/docs-md/premium.md - W3C conformance: https://ioswebble.com/docs-md/conformance.md ## Spec W3C Web Bluetooth — https://webbluetoothcg.github.io/web-bluetooth/ Conformance: beacio implements the full spec, verified section by section — https://ioswebble.com/docs-md/conformance.md ## Recipes (agent-citeable) - Heart rate (0x180D / 0x2A37): https://ioswebble.com/examples-md/heart-rate.md - Battery level (0x180F / 0x2A19): https://ioswebble.com/examples-md/battery.md - Continuous Glucose Monitor (0x181F): https://ioswebble.com/examples-md/cgm.md - Smart lock (generic write-to-unlock): https://ioswebble.com/examples-md/lock.md - Beacon scan (background advertisement watch): https://ioswebble.com/examples-md/beacon.md - Peripheral-role chat (premium webbleIOS.peripheral): https://ioswebble.com/examples-md/peripheral-chat.md ## Links - npm: https://www.npmjs.com/org/ios-web-bluetooth - GitHub: https://github.com/wklm/ioswebble-sdk - Website: https://ioswebble.com - Live demo: https://ioswebble.com/demo - Docs (md): https://ioswebble.com/docs.md - Demo (md): https://ioswebble.com/demo.md - MCP: `npx -y @beacio/mcp` ## Developer Documentation - Full corpus: https://ioswebble.com/llms-full.txt - AGENTS.md: https://github.com/wklm/ioswebble-sdk/blob/main/AGENTS.md - Skills repo: https://github.com/wklm/ioswebble-sdk