Best use case

ble-debug is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Teams using ble-debug should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ble-debug/SKILL.md --create-dirs "https://raw.githubusercontent.com/wangjianjq/Skill/main/.agents/skills/ble-debug/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ble-debug/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ble-debug Compares

Feature / Agentble-debugStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This skill provides specific capabilities for your AI agent. See the About section for full details.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill: Bluetooth LE (BLE) Debugging

## 1. Overview

Protocol for analyzing and automating Bluetooth Low Energy (BLE) communication.

## 2. Tools

* **Sniffing**: Nordic nRF52840 Dongle + nRF Sniffer Firmware.
* **Analysis**: Wireshark with nRF Sniffer extcap plugin.
* **Automation**: Python `bleak` library (Cross-platform GATT client).

## 3. Python Automation (Bleak)

```python
import asyncio
from bleak import BleakClient

address = "AA:BB:CC:DD:EE:FF"
utils_uuid = "0000ffe0-0000-1000-8000-00805f9b34fb"

async def main():
    async with BleakClient(address) as client:
        # Write
        await client.write_gatt_char(utils_uuid, b"Hello World")
        
        # Read
        val = await client.read_gatt_char(utils_uuid)
        print(f"Received: {val}")

asyncio.run(main())
```

## 4. Debugging Workflow

1. **Sniff**: Plug in nRF dongle, start Wireshark, select nRF Sniffer interface.
2. **Filter**: Set Wireshark filter to the target MAC address.
3. **Interact**: Use mobile app or `bleak` script to trigger BLE operations.
4. **Analyze**: Inspect ATT/GATT packets for errors or timing issues.