{"adoption": {"forks": 42, "observed_at": "2026-08-28T04:04:27.320363+00:00", "stars": 1345}, "canonical_url": "https://ross.abutalabs.com/products/usbvalve", "card": {"archived": false, "artifact_type": "application", "description": "Expose USB activity on the fly", "domain": ["security", "hardware"], "enriched": true, "function": ["security", "monitoring", "embedded"], "health_score": 99, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["cecio/USBvalve"], "name": "cecio/USBvalve", "platform": ["embedded", "cross-platform"], "pushed_at": "2026-08-19T20:18:57+00:00", "repo": "cecio/USBvalve", "stars": 1345, "tags": ["badusb", "usb-forensics", "raspberry-pi-pico", "usb-hid", "hardware-security-tool", "forensics"], "topics": ["badusb", "malware", "usb", "usb-hid", "forensics"], "urls": [], "use_cases": ["check if a USB device installed malware on my drive", "detect badusb hid attacks from unknown devices", "monitor usb mass storage file activity in real time", "debug usb hid payloads from devices like rubber ducky", "forensic analysis of suspicious usb ports", "test if a kiosk computer is stealing files from usb drives"], "what_it_is": "USBvalve is a firmware application for cheap RP2040-based hardware (Raspberry Pi Pico) that emulates a fake USB mass-storage filesystem and exposes any read/write activity on a display, revealing hidden malware behavior. It also acts as a USB host to detect and debug BADUSB HID devices.", "when_to_avoid": ["you need software-only USB monitoring on your own computer", "you require deep packet-level USB protocol analysis", "you need a network-based or enterprise-scale USB DLP solution"], "when_to_choose": ["you need a cheap portable hardware tool to inspect USB activity on unknown machines", "you want to detect BADUSB/HID injection devices on the fly", "you do USB forensics or security awareness demos"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/usbvalve", "repo": "cecio/USBvalve", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.320363+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:44.544891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "147202763b32773d8e7d36033bf1bedbdc6cc6e317ecfa23992ad88c65ff4765", "fetched_at": "2026-08-28T04:04:27.320363+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cecio/USBvalve"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 92, "rhythm": 86}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1290, "days_push": 14, "days_rel": 14, "gap_med": 87.0, "n_releases_24m": 7}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}