{"adoption": {"forks": 619, "observed_at": "2026-08-28T04:09:40.047612+00:00", "stars": 6211}, "canonical_url": "https://ross.abutalabs.com/products/clumsy", "card": {"archived": false, "artifact_type": "application", "description": "clumsy makes your network condition on Windows significantly worse, but in a controlled and interactive manner.", "domain": ["networking", "developer-tools", "testing"], "enriched": true, "function": ["networking", "testing", "gui"], "health_score": 55, "homepage": "http://jagt.github.io/clumsy/", "language": "C", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["jagt/clumsy"], "name": "jagt/clumsy", "platform": ["windows"], "pushed_at": "2025-11-25T02:38:44+00:00", "repo": "jagt/clumsy", "stars": 6211, "tags": ["network-simulation", "packet-manipulation", "windivert", "fault-injection", "poor-network-testing"], "topics": [], "urls": [], "use_cases": ["simulate network latency and packet loss on windows", "test app behavior on poor or flaky connections", "debug bugs caused by broken network conditions", "emulate lag for localhost or offline testing", "throttle or duplicate packets to stress-test network code"], "what_it_is": "clumsy is a Windows utility that degrades network conditions in a controlled, interactive way by capturing live packets with WinDivert and applying lag, drop, throttle, duplicate, reorder, or tamper effects. It requires no installation, proxy setup, or code changes and works system-wide on any TCP/IP application.", "when_to_avoid": ["you are on Linux or macOS - clumsy is Windows-only", "you need scripted or automated network fault injection rather than interactive GUI control", "you need bandwidth shaping or traffic prioritization rather than packet-level degradation"], "when_to_choose": ["you need to simulate bad network conditions on Windows without changing your app or setting up a proxy", "you want interactive, on-the-fly control of packet lag, drop, throttle, duplicate, reorder, or tamper", "you need system-wide packet manipulation that works on any TCP/IP application, including localhost"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clumsy", "repo": "jagt/clumsy", "role": "main", "score": 47}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "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:09:40.047612+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.047612+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:47:17.571734+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d908ea0180833517dbc6d7db4c24942681d5548c3e01ec9435be89f79dc79e93", "fetched_at": "2026-08-28T04:09:40.047612+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jagt/clumsy"}, {"content_hash": "ea916133bfe4c5e9aaf57c12b9ae72016755b05475ff08abb3a26760fec99130", "fetched_at": "2026-08-29T08:43:38.282285+00:00", "kind": "homepage", "missing": false, "url": "http://jagt.github.io/clumsy/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4719, "days_push": 282, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 47, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}