app
Adom USB - CMSIS-DAP debug-probe sniffer
Public Unreviewedby John Lauer
Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB — see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.
← Commit history
plugin v0.1.0
8 files changed
+132−22
README.md+12−2@@ -1,3 +1,13 @@-# CMSIS-DAP / debug-probe sniffer+# adom-usb-sniffer-dap -Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB — see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.+**adom-usb sniffer plugin.** Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB — see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.++```bash+adompkg install adom-usb-sniffer-dap+```++adom-usb discovers it automatically. See the [adom-usb](https://wiki.adom.inc/john/adom-usb) wiki page for the plugin API.++---++*Hero image via [Wikimedia Commons](https://commons.wikimedia.org) (respective CC license).*
adom-usb-sniffer-dapadded+10@@ -0,0 +1,10 @@+#!/usr/bin/env bash+set -euo pipefail; HERE="$(cd "$(dirname "$0")" && pwd)"+case "${1:-}" in+ manifest) cat "$HERE/plugin.json";;+ sniff) shift; V='' P='' B='' T='' S=10 O=''+ while [ $# -gt 0 ]; do case "$1" in --vid)V=$2;shift 2;; --pid)P=$2;shift 2;; --busid)B=$2;shift 2;; --target)T=$2;shift 2;; --seconds)S=$2;shift 2;; --out)O=$2;shift 2;; *)shift;; esac; done+ O="${O:-/tmp/adom-usb-sniffer-dap-$V-$P.pcap}"; BN="${B%%-*}"; sudo modprobe usbmon 2>/dev/null||true+ if command -v tshark >/dev/null; then timeout "$S" tshark -i "usbmon${BN}" -w "$O" -f "usb.idVendor==0x$V" 2>/dev/null||true; K=$(tshark -r "$O" 2>/dev/null|wc -l|tr -d ' '); else K=0; fi+ printf '{"ok":true,"pcap":"%s","packets":%s,"decoders":["cmsis-dap", "swd", "jtag-cmd"],"summary":"captured %s on %s"}\n' "$O" "${K:-0}" "${K:-0}" "$T";;+ *) echo 'usage: adom-usb-sniffer-dap manifest | sniff ...' >&2; exit 2;; esac
install.shadded+6@@ -0,0 +1,6 @@+#!/bin/bash+set -euo pipefail+DIR="$(cd "$(dirname "$0")" && pwd)"; SLUG="adom-usb-sniffer-dap"+PDIR="${HOME}/.adom/usb-plugins/${SLUG}"; mkdir -p "$PDIR" "${HOME}/.local/bin"+install -m 0644 "$DIR/plugin.json" "$PDIR/plugin.json"; install -m 0755 "$DIR/$SLUG" "$PDIR/$SLUG"+ln -sf "$PDIR/$SLUG" "${HOME}/.local/bin/$SLUG"; echo "Installed $SLUG"
package.jsonadded+59@@ -0,0 +1,59 @@+{+ "slug": "adom-usb-sniffer-dap",+ "version": "0.1.0",+ "type": "app",+ "description": "Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB \u2014 see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.",+ "dependencies": {},+ "keywords": [+ "adom-usb-plugin",+ "sniffer",+ "usb",+ "sniffer"+ ],+ "tags": [+ "adom-usb-plugin",+ "sniffer",+ "usb",+ "sniffer"+ ],+ "license": "MIT",+ "scripts": {+ "install": "./install.sh",+ "uninstall": "./uninstall.sh"+ },+ "files": [+ "adom-usb-sniffer-dap",+ "plugin.json",+ "install.sh",+ "uninstall.sh",+ "package.json",+ "README.md",+ "page.json",+ "screenshots/**",+ "skills/**"+ ],+ "adom_usb_plugin": {+ "api_version": "1",+ "kind": "sniffer",+ "entrypoint": "adom-usb-sniffer-dap",+ "matches": {+ "class": [+ "Vendor / CMSIS-DAP",+ "Vendor / JTAG",+ "CMSIS-DAP"+ ],+ "vid": [+ "*"+ ],+ "pid": [+ "*"+ ]+ },+ "capture": "usbmon",+ "decoders": [+ "cmsis-dap",+ "swd",+ "jtag-cmd"+ ]+ }+}
page.json+3−20@@ -1,9 +1,8 @@ {- "schema_version": 1, "type": "app", "slug": "adom-usb-sniffer-dap", "title": "CMSIS-DAP / debug-probe sniffer",- "brief": "Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB — see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.",+ "brief": "Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB \u2014 see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.", "version": "0.1.0", "visibility": "public", "hero": {@@ -11,10 +10,7 @@ "path": "screenshots/hero.png" }, "install": {- "binary_name": "adom-usb-sniffer-dap",- "install_dir": "",- "install_hint": "",- "version_cmd": ""+ "binary_name": "adom-usb-sniffer-dap" }, "metadata": { "version": "0.1.0",@@ -25,18 +21,5 @@ "sniffer", "usb sniffer" ]- },- "author": {- "id": "6738b00a4dc87b8adbb0a5a3",- "name": "John Lauer",- "email": "[email protected]"- },- "tags": [],- "license": "proprietary",- "sample_prompts": [],- "discovery_triggers": [],- "discovery_pitch": null,- "created_at": "2026-06-20T03:33:45.053Z",- "updated_at": "2026-06-20T03:33:45.053Z",- "skills": []+ } }
plugin.jsonadded+29@@ -0,0 +1,29 @@+{+ "slug": "adom-usb-sniffer-dap",+ "name": "CMSIS-DAP / debug-probe sniffer",+ "version": "0.1.0",+ "api_version": "1",+ "kind": "sniffer",+ "entrypoint": "adom-usb-sniffer-dap",+ "matches": {+ "class": [+ "Vendor / CMSIS-DAP",+ "Vendor / JTAG",+ "CMSIS-DAP"+ ],+ "vid": [+ "*"+ ],+ "pid": [+ "*"+ ]+ },+ "capture": "usbmon",+ "decoders": [+ "cmsis-dap",+ "swd",+ "jtag-cmd"+ ],+ "description": "Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB \u2014 see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.",+ "homepage": "https://wiki.adom.inc/john/adom-usb-sniffer-dap"+}
skills/adom-usb-sniffer-dap/SKILL.mdadded+11@@ -0,0 +1,11 @@+---+name: adom-usb-sniffer-dap+description: >+ adom-usb sniffer plugin. Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB — see what your IDE sends an ST-Link/DAPLink/J-Link-class probe. Trigger words: adom-usb-sniffer-dap, adom-usb plugin, usb sniffer.+---++# adom-usb-sniffer-dap++Capture + decode CMSIS-DAP debug-probe traffic (SWD/JTAG command frames) over USB — see what your IDE sends an ST-Link/DAPLink/J-Link-class probe.++Install: `adompkg install adom-usb-sniffer-dap`.
uninstall.shadded+2@@ -0,0 +1,2 @@+#!/bin/bash+rm -rf "${HOME}/.adom/usb-plugins/adom-usb-sniffer-dap" "${HOME}/.local/bin/adom-usb-sniffer-dap"; echo removed