{"adoption": {"forks": 494, "observed_at": "2026-08-28T04:07:34.584888+00:00", "stars": 2990}, "canonical_url": "https://ross.abutalabs.com/products/usbcopyer", "card": {"archived": false, "artifact_type": "application", "description": "😉 用于在插上U盘后自动按需复制该U盘的文件。”备份&偷U盘文件的神器”（写作USBCopyer，读作USBCopier）", "domain": ["files", "windows", "developer-tools"], "enriched": true, "function": ["file-system", "backup", "workflow-automation", "developer-tools"], "health_score": 63, "homepage": "https://kenvix.com/post/usbcopyer/", "language": "C#", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["kenvix/USBCopyer"], "name": "kenvix/USBCopyer", "platform": ["windows"], "pushed_at": "2026-03-14T12:46:27+00:00", "repo": "kenvix/USBCopyer", "stars": 2990, "tags": ["usb", "usb-copy", "file-copying", "hidden-mode", "git-versioning", "usb-backup", "tray-application", "automation", "desktop"], "topics": ["tool", "copy"], "urls": [], "use_cases": ["automatically copy files from a USB drive when plugged in", "grab lecture slides from a teacher's USB stick", "back up a USB drive with version control", "capture files from USB drives inserted into a shared computer", "run a hidden USB file copier on Windows", "filter which files get copied by extension or disk serial number"], "what_it_is": "A Windows tray application written in C# that automatically copies files from a USB drive when it is plugged in, with filtering by extension, disk serial number, and file size. It supports hidden mode, startup launch, delayed copying, custom callbacks, and optional Git version control of copied files.", "when_to_avoid": ["you are on Linux or macOS - it is Windows-only", "you need to copy from MTP/PTP devices like phones", "you need a cross-platform or scriptable backup solution", "covert copying of others' files would be unethical or illegal in your context"], "when_to_choose": ["you need automatic, rule-based copying of USB drive contents on Windows", "you want hidden or stealthy operation with startup launch", "you want Git version control of backed-up USB files", "you need extension/disk whitelists, size limits, or delayed copying"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/usbcopyer", "repo": "kenvix/USBCopyer", "role": "main", "score": 55}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "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:07:34.584888+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:34.584888+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:31:22.246501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c44c868a9d78e831042f28943b29ae68bc4dc0ba2b9eb8267bad0c9aba10e18b", "fetched_at": "2026-08-28T04:07:34.584888+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kenvix/USBCopyer"}, {"content_hash": "fb16571d1dd792d242930b61dfe537a2b31f582c46ca26bcfeb5a4204d1d3eac", "fetched_at": "2026-08-29T09:46:15.736121+00:00", "kind": "homepage", "missing": false, "url": "https://kenvix.com/post/usbcopyer/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 72, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3757, "days_push": 172, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 55, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}