{"adoption": {"forks": 584, "observed_at": "2026-08-28T04:05:39.106727+00:00", "stars": 1806}, "canonical_url": "https://ross.abutalabs.com/products/knot", "card": {"archived": false, "artifact_type": "application", "description": "一款iOS端基于MITM(中间人攻击技术)实现的HTTPS抓包工具，完整的App，核心代码使用SwiftNIO实现", "domain": ["security", "developer-tools", "networking"], "enriched": true, "function": ["security", "networking", "http-server", "developer-tools"], "health_score": 76, "homepage": null, "language": "Swift", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Lojii/Knot"], "name": "Lojii/Knot", "platform": [], "pushed_at": "2026-07-17T14:48:24+00:00", "repo": "Lojii/Knot", "stars": 1806, "tags": ["packet-capture", "mitm", "https-interception", "traffic-analysis", "network-debugging", "swiftnio", "certificate-management", "ios-tools", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["capture https traffic on iphone", "debug api requests from ios apps", "inspect network traffic from lan devices", "install mitm ca certificate on ios", "export captured http requests", "analyze app network behavior on device"], "what_it_is": "Knot is a full-featured iOS app for capturing and analyzing HTTP/HTTPS network traffic using MITM (man-in-the-middle) techniques, built entirely in Swift with SwiftNIO for the core networking code. It supports traffic parsing, multi-format export, LAN device capture, CA certificate installation/export, and filter rule configuration.", "when_to_avoid": ["you need a cross-platform or desktop packet capture solution", "you want a ready-to-install App Store app without building with your own Apple account", "you need protocol support beyond HTTP/HTTPS out of the box"], "when_to_choose": ["you need on-device HTTPS packet capture on iOS without a desktop proxy", "you want to inspect traffic from other devices on the same LAN", "you prefer an open-source, self-buildable capture tool with full source code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/knot", "repo": "Lojii/Knot", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "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:05:39.106727+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.106727+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:27.759416+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbe53da2fa9a043608da8823f661b5bc1c1a0969a7ad7ac58ca44d587baef744", "fetched_at": "2026-08-28T04:05:39.106727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lojii/Knot"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2395, "days_push": 47, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}