{"adoption": {"forks": 83, "observed_at": "2026-08-28T04:04:19.065047+00:00", "stars": 1308}, "canonical_url": "https://ross.abutalabs.com/products/tapmap", "card": {"archived": false, "artifact_type": "application", "description": "Watch your computer connect across the internet in real time. Discover the world behind your apps.", "domain": ["networking", "monitoring", "data-visualization", "privacy", "self-hosted", "security"], "enriched": true, "function": ["monitoring", "data-visualization", "analytics", "networking", "geospatial"], "health_score": 100, "homepage": "https://olalie.github.io/tapmap/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["olalie/tapmap"], "name": "olalie/tapmap", "platform": ["windows", "python", "self-hosted", "cross-platform"], "pushed_at": "2026-08-25T09:01:56+00:00", "repo": "olalie/tapmap", "stars": 1308, "tags": ["network-visualization", "geolocation", "real-time-map", "socket-monitoring", "plotly-dash", "internet-observability", "network-awareness", "macos", "linux", "docker"], "topics": ["network-visualization", "python", "geolocation", "docker", "dash", "plotly", "real-time", "interactive-map", "internet-observability"], "urls": [], "use_cases": ["visualize where my computer's internet connections go on a world map", "monitor network connections in real time with geolocation", "find out which apps are connecting to which servers", "detect new or unusual network activity on my machine", "track network activity history and patterns over time", "self-hosted network observability dashboard", "see which countries my traffic goes to"], "what_it_is": "TapMap is a self-hosted desktop application that inspects local socket data, enriches IP addresses with geolocation, and visualizes your computer's internet connections in real time on an interactive world map. It builds a local activity history with insights and daily reports, acting as a network awareness tool rather than a firewall or security suite.", "when_to_avoid": ["you need a firewall, intrusion detection, or full security suite - TapMap only makes activity visible", "you need precise geolocation - IP locations are approximate", "you need network-wide monitoring across multiple devices - it inspects only the local machine"], "when_to_choose": ["you want a visual, real-time map of your machine's outbound network connections", "you want a local, no-telemetry awareness tool with activity history and daily reports", "you want installers for Windows, macOS, and Linux, or a Docker deployment on Linux"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tapmap", "repo": "olalie/tapmap", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "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:04:19.065047+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:19.065047+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:50:05.569958+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2cb9080af2876184c79c49d6ad5661085fc0435bf13ac082d512661a4621ffce", "fetched_at": "2026-08-28T04:04:19.065047+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olalie/tapmap"}, {"content_hash": "d6563d47f65d5363d3f04c548706d06b61e72cf616635b09b480ecaf5ac6eafc", "fetched_at": "2026-08-29T12:08:29.071436+00:00", "kind": "homepage", "missing": false, "url": "https://olalie.github.io/tapmap/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 14, "rhythm": 99}, "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": 199, "days_push": 8, "days_rel": 9, "gap_med": 3, "n_releases_24m": 24}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}