{"skill":{"slug":"bluetooth","displayName":"Bluetooth","summary":"Discover, connect, and control Bluetooth devices with automatic profile learning, cross-platform tools, and device management.","description":"---\nname: Bluetooth\ndescription: Discover, connect, and control Bluetooth devices with automatic profile learning, cross-platform tools, and device management.\n---\n\n## Core Workflow\n\n1. **Scan** — Discover nearby devices\n2. **Identify** — Match against known profiles or learn new device\n3. **Connect** — Establish link with appropriate protocol\n4. **Execute** — Send commands, read data, manage state\n5. **Learn** — Update device profile based on interaction success/failure\n\n---\n\n## Quick Reference\n\n| Need | Load |\n|------|------|\n| CLI commands by platform | `tools.md` |\n| Device profile management | `profiles.md` |\n| Security rules and warnings | `security.md` |\n| Patterns by use case | `use-cases.md` |\n\n---\n\n## Workspace\n\nStore device profiles and interaction history:\n\n```\n~/bluetooth/\n├── profiles/         # Known device configs (one file per device)\n├── history.md        # Interaction log with success/failure\n└── pending.md        # Devices discovered but not profiled\n```\n\n---\n\n## Critical Rules\n\n1. **Never auto-connect** to unknown devices — require explicit user confirmation\n2. **Whitelist first** — only interact with pre-authorized devices\n3. **Log everything** — every connection attempt, command, result\n4. **Fail gracefully** — if device unreachable, retry with backoff, then report\n5. **Profile learning** — when something works, save it; when it fails, note why\n\n---\n\n## Platform Detection\n\n| OS | Primary Tool | Fallback |\n|----|--------------|----------|\n| Linux | `bluetoothctl` | `hcitool`, `gatttool` |\n| macOS | `blueutil` | `system_profiler`, CoreBluetooth |\n| Windows | WinRT/PowerShell | `pnputil` for enumeration |\n| Cross-platform | Bleak (Python) | Noble (Node.js) |\n\n---\n\n## Device Interaction Pattern\n\n```\n1. Check ~/bluetooth/profiles/ for device\n2. If known → load profile, use saved commands\n3. If unknown → scan characteristics, discover capabilities\n4. Execute requested action\n5. Verify result (read state, check acknowledgment)\n6. Update profile: what worked, what failed, timing\n```\n","topics":["Learning"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1165,"installsAllTime":44,"installsCurrent":1,"stars":2,"versions":1},"createdAt":1770939599011,"updatedAt":1778488088696},"latestVersion":{"version":"1.0.0","createdAt":1770939599011,"changelog":"Initial release","license":null},"metadata":null,"owner":{"handle":"ivangdavila","userId":"s178jdk12x4qj3gs2se3etxf3h83h7ft","displayName":"Iván","image":"https://avatars.githubusercontent.com/u/81719670?v=4"},"moderation":null}