← Commit history
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"+    ]+  }+}\ No newline at end of file
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": []+  } }\ No newline at end of file
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"+}\ No newline at end of file
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