{"adoption": {"forks": 798, "observed_at": "2026-08-28T04:09:00.561467+00:00", "stars": 4824}, "canonical_url": "https://ross.abutalabs.com/products/consul-template", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Template rendering, notifier, and supervisor for @HashiCorp Consul and Vault data.", "domain": ["infrastructure-as-code", "self-hosted"], "enriched": true, "function": ["templating", "configuration-management", "cli", "developer-tools"], "health_score": 100, "homepage": "https://www.hashicorp.com/", "language": "Go", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["hashicorp/consul-template"], "name": "hashicorp/consul-template", "platform": ["windows", "go", "cross-platform"], "pushed_at": "2026-08-25T06:10:45+00:00", "repo": "hashicorp/consul-template", "stars": 4824, "tags": ["consul", "vault", "nomad", "hashicorp", "template-rendering", "service-discovery", "secrets", "daemon", "supervisor", "devops", "automation", "linux", "macos", "docker"], "topics": ["golang", "consul", "vault"], "urls": [], "use_cases": ["render nginx config from consul service discovery", "populate vault secrets into config files", "keep haproxy backend list in sync with consul", "reload services when configuration changes", "template files from nomad variables", "dynamically update app config from consul kv"], "what_it_is": "A daemon and CLI tool from HashiCorp that queries Consul, Vault, or Nomad and renders template files with the resulting data. It can also run arbitrary commands when templates are updated, acting as a notifier and supervisor.", "when_to_avoid": ["you don't use Consul, Vault, or Nomad as a data source", "you need one-shot templating without watching for changes", "you want a general-purpose configuration management system like Ansible"], "when_to_choose": ["you use HashiCorp Consul, Vault, or Nomad and need config files populated from their data", "you want files re-rendered and commands re-run automatically when upstream data changes", "you need a battle-tested, widely deployed tool for dynamic configuration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/consul-template", "repo": "hashicorp/consul-template", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "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:09:00.561467+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:00.561467+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:18:31.241151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80a10e36e90ac907b19dc85f9391703326251ab58b0d60f234aab24fa0b562f2", "fetched_at": "2026-08-28T04:09:00.561467+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/consul-template"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 80}, "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": 4348, "days_push": 8, "days_rel": 56, "gap_med": 80, "n_releases_24m": 8}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}