{"adoption": {"forks": 141, "observed_at": "2026-08-28T04:06:33.978413+00:00", "stars": 2284}, "canonical_url": "https://ross.abutalabs.com/products/squat-kilo", "card": {"archived": false, "artifact_type": "service", "description": "Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)", "domain": ["networking", "cloud-computing", "security", "infrastructure-as-code", "microservices"], "enriched": true, "function": ["networking", "vpn", "security", "cryptography", "self-hosted"], "health_score": 96, "homepage": "https://kilo.squat.ai", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["squat/kilo"], "name": "squat/kilo", "platform": ["go", "self-hosted", "cloud"], "pushed_at": "2026-08-20T01:10:47+00:00", "repo": "squat/kilo", "stars": 2284, "tags": ["wireguard", "kubernetes-cni", "multi-cloud", "multi-cluster", "network-overlay", "cni", "vpn-mesh", "kubernetes-networking", "containers", "linux", "kubernetes", "docker"], "topics": ["kubernetes", "networking", "vpn", "wireguard", "multi-cloud", "multi-cluster", "federation", "cni"], "urls": [], "use_cases": ["connect kubernetes nodes across different clouds into one cluster", "create a multi-cloud kubernetes cluster with encrypted pod networking", "vpn into a kubernetes cluster to access pods and services securely", "connect two kubernetes clusters to share services privately", "encrypt cluster traffic between nodes on unsecured networks", "run local development workloads connected to a remote cluster", "add wireguard networking on top of flannel", "give cluster workloads secure access to services behind a corporate vpn"], "what_it_is": "Kilo is a multi-cloud network overlay for Kubernetes built on WireGuard, providing an encrypted layer 3 network that connects nodes across data centers, clouds, and NAT boundaries. It runs as an agent (kg) on every node and can act as a full CNI or an add-on alongside existing networking like Flannel, also enabling VPN access for external peers and multi-cluster services.", "when_to_avoid": ["you run kubernetes on windows or non-linux nodes without WireGuard support", "you need a CNI with rich L7 policy or service mesh features", "your cluster is single-location and your existing CNI already meets your needs", "you cannot load the WireGuard kernel module or use a userspace fallback"], "when_to_choose": ["you need a single kubernetes cluster spanning multiple clouds or data centers", "you want wireguard-based encrypted pod networking with a simple agent", "you need private multi-cluster services without exposing them via ingress or nodeport", "you want external clients or developers to VPN into the cluster network", "you need a lightweight CNI add-on that complements an existing network plugin"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/squat-kilo", "repo": "squat/kilo", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "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:33.978413+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.978413+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:41:06.936926+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae4e4271bd7681c758994f346a27b5c27fab22b358067c007a0f73163cefc5ab", "fetched_at": "2026-08-28T04:06:33.978413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squat/kilo"}, {"content_hash": "6075d5c395cabb907d43690fc86f74eaa80e7006f0e45a513aba801c8a1c9dc9", "fetched_at": "2026-08-29T10:21:30.893710+00:00", "kind": "homepage", "missing": false, "url": "https://kilo.squat.ai"}, {"content_hash": "1db04ca4fb07a36c414756bec1018a3131c5e616163bda03b45acb3a0283bd74", "fetched_at": "2026-08-29T10:21:30.896041+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/introduction"}, {"content_hash": "6d04b4f4c4a3bdefdde7ad81c8e344bfc9b50e4edb11ebc52e384bab5b0cfcb1", "fetched_at": "2026-08-29T10:21:30.898008+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/vpn"}, {"content_hash": "933943e8fcbc44ba0d7f813c254e3e2409bfcc02356dedf06999e446a5f1d3c9", "fetched_at": "2026-08-29T10:21:30.899675+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/multi-cluster-services"}, {"content_hash": "be155d9e8fa51bb5432305be16d0b8b37ed36e5e1ebd8f02c6a5ff5958776411", "fetched_at": "2026-08-29T10:21:30.901435+00:00", "kind": "site_page", "missing": false, "url": "https://kilo.squat.ai/docs/topology"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 41}, "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": 2813, "days_push": 14, "days_rel": 182, "gap_med": null, "n_releases_24m": 1}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}