{"adoption": {"forks": 369, "observed_at": "2026-08-28T04:08:35.655864+00:00", "stars": 4106}, "canonical_url": "https://ross.abutalabs.com/products/nali", "card": {"archived": false, "artifact_type": "cli-tool", "description": "An offline tool for querying IP geographic information and CDN provider. 一个查询IP地理信息和CDN服务提供商的离线终端工具.", "domain": ["networking", "developer-tools", "privacy"], "enriched": true, "function": ["search-engine", "cli", "developer-tools"], "health_score": 73, "homepage": "https://github.com/zu1k/nali", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["zu1k/nali"], "name": "zu1k/nali", "platform": ["windows", "cli", "cross-platform", "go"], "pushed_at": "2026-05-12T09:51:46+00:00", "repo": "zu1k/nali", "stars": 4106, "tags": ["geoip", "ip-geolocation", "cdn-detection", "offline-lookup", "qqwry", "ipv6", "pipe-processing", "command-line", "linux", "macos"], "topics": ["nali", "nali-cli", "ip", "geoip2", "chunzhen", "qqwry", "qqwry-ip-database", "geoip", "golang", "cli", "zx-ipv6", "cdn-provider", "cdn", "ipip"], "urls": [], "use_cases": ["look up the geographic location of an IP address from the terminal", "identify which CDN provider serves a domain or IP", "annotate dig or nslookup output with IP locations", "query IP geolocation offline without network requests", "pipe any command output through an IP geolocation annotator", "check IPv6 address geolocation in the terminal"], "what_it_is": "Nali is an offline command-line tool written in Go for querying IP geolocation and CDN provider information using multiple local databases (QQwry, ZX IPv6, GeoIP2, IPIP, ip2region, etc.). It supports piping, interactive queries, IPv4/IPv6, and works on all platforms.", "when_to_avoid": ["you need real-time, highly accurate commercial-grade geolocation via web APIs", "you need a GUI or web interface for IP lookups", "you require bulk batch processing of millions of IPs with database management features"], "when_to_choose": ["you need fully offline IP geolocation queries with no API calls", "you want to annotate output of other tools like dig or nslookup via pipes", "you need both IPv4 and IPv6 support with multiple database options", "you want a fast, cross-platform single-binary CLI tool"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nali", "repo": "zu1k/nali", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "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:08:35.655864+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.655864+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:14.182248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "afae31147b43ee0e1433d5da2621c88ef03bd8de9740ae319eac6b38ec170c8e", "fetched_at": "2026-08-28T04:08:35.655864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zu1k/nali"}, {"content_hash": "f2cc0bfabf42116524a0568b132d6db20c3b2ec245247d06327b44c6ba811958", "fetched_at": "2026-08-29T09:14:42.630042+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zu1k/nali"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 82, "longevity": 100, "rhythm": 8}, "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": 2239, "days_push": 113, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}