{"adoption": {"forks": 290, "observed_at": "2026-08-28T04:08:07.087207+00:00", "stars": 3487}, "canonical_url": "https://ross.abutalabs.com/products/kubetail", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Bash script to tail Kubernetes logs from multiple pods at the same time", "domain": ["developer-tools"], "enriched": true, "function": ["logging", "cli", "developer-tools"], "health_score": 88, "homepage": null, "language": "Shell", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["johanhaleby/kubetail"], "name": "johanhaleby/kubetail", "platform": ["cli", "cross-platform"], "pushed_at": "2026-06-12T09:21:55+00:00", "repo": "johanhaleby/kubetail", "stars": 3487, "tags": ["kubernetes", "bash", "log-aggregation", "kubectl", "pods", "tail", "containers", "devops", "command-line", "linux", "macos"], "topics": ["kubernetes", "bash", "pod", "tail"], "urls": [], "use_cases": ["tail logs from multiple kubernetes pods at once", "aggregate pod logs into one stream", "follow logs across deployments in kubernetes", "debug kubernetes services by watching all pod logs", "stream logs from pods matching a label", "view kubernetes logs without a dashboard"], "what_it_is": "Kubetail is a Bash script that aggregates and follows logs from multiple Kubernetes pods into a single stream, like running 'kubectl logs -f' for many pods at once. It is a lightweight single-script CLI tool installable via Homebrew, ASDF, or shell plugin managers.", "when_to_avoid": ["you need centralized log storage, search, or retention", "you require structured log parsing or alerting", "you are not running Kubernetes or do not have kubectl configured"], "when_to_choose": ["you want a zero-dependency bash script instead of a heavy log aggregation stack", "you need to quickly tail logs from several pods during debugging", "you already use kubectl and want a familiar multi-pod log viewer"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kubetail", "repo": "johanhaleby/kubetail", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "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:07.087207+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.087207+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:36:08.250653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f93a1e7c38efb9ba87bf6bfb4905c62552d09e424ab647c22127b3b3be018b2c", "fetched_at": "2026-08-28T04:08:07.087207+00:00", "kind": "readme", "missing": false, "url": "https://github.com/johanhaleby/kubetail"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "longevity": 100, "rhythm": 44}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3948, "days_push": 82, "days_rel": 292, "gap_med": 41, "n_releases_24m": 2}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}