{"adoption": {"forks": 339, "observed_at": "2026-08-28T04:06:42.731150+00:00", "stars": 2387}, "canonical_url": "https://ross.abutalabs.com/products/nipe", "card": {"archived": false, "artifact_type": "cli-tool", "description": "An engine to make Tor network your default gateway", "domain": ["privacy", "security", "networking"], "enriched": true, "function": ["networking", "security", "privacy", "cli"], "health_score": 74, "homepage": "https://heitorgouvea.me/", "language": "Perl", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["htrgouvea/nipe"], "name": "htrgouvea/nipe", "platform": ["cli"], "pushed_at": "2026-06-27T10:01:13+00:00", "repo": "htrgouvea/nipe", "stars": 2387, "tags": ["tor", "anonymity", "iptables", "transparent-proxy", "perl", "default-gateway", "command-line", "linux"], "topics": ["tor", "anonymity", "network", "nipe", "privacy", "perl", "iptables", "anonymize", "engine"], "urls": [], "use_cases": ["route all my traffic through tor", "make tor my default network gateway", "anonymize my machine's internet traffic", "transparently redirect traffic through tor with iptables", "browse the internet anonymously from the command line", "run an anonymous networking container with docker"], "what_it_is": "Nipe is a Perl-based command-line engine that routes all of a machine's network traffic through the Tor network by manipulating iptables/ip6tables rules, making Tor the default gateway. It supports IPv4 and IPv6 and offers simple start/stop/restart/status commands, plus a Docker setup.", "when_to_avoid": ["you need UDP or ICMP traffic anonymized, since Tor blocks non-local UDP/ICMP", "you are on Windows or macOS without iptables support", "you have existing iptables rules you cannot afford to disrupt, since stopping Nipe flushes its rules"], "when_to_choose": ["you want system-wide Tor routing on Linux rather than per-app proxying", "you need IPv4 and IPv6 traffic transparently sent through Tor", "you prefer a simple CLI to start, stop, and check Tor routing status"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nipe", "repo": "htrgouvea/nipe", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "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:06:42.731150+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.731150+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:34.700107+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b49f616cdd1fa7e2324818d07ab40d2d720adc7851c048e4b0b469daa900eb0", "fetched_at": "2026-08-28T04:06:42.731150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/htrgouvea/nipe"}, {"content_hash": "1e87d77b69c9932b0359a1f11ea5eb670015ec8ddb82c528a2c800f0647c63c3", "fetched_at": "2026-08-29T10:15:20.987674+00:00", "kind": "homepage", "missing": false, "url": "https://heitorgouvea.me/"}, {"content_hash": "3912c266b241923baca3bde4d90680ce7ed13d0dee177929bce443a5fe9101f7", "fetched_at": "2026-08-29T10:15:20.997135+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/about"}, {"content_hash": "b854289a1dc664810d0aa536686d5cd944793f315494580181c4f9b07774e712", "fetched_at": "2026-08-29T10:15:20.998975+00:00", "kind": "site_page", "missing": false, "url": "https://heitorgouvea.me/2020/06/23/Scraping-personal-data-exposure-in-the-web"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4013, "days_push": 67, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}