{"adoption": {"forks": 129, "observed_at": "2026-08-28T04:06:58.865413+00:00", "stars": 2531}, "canonical_url": "https://ross.abutalabs.com/products/spinner", "card": {"archived": false, "artifact_type": "library", "description": "Go (golang) package with 90 configurable terminal spinner/progress indicators.", "domain": ["developer-tools"], "enriched": true, "function": ["terminal-ui", "cli", "developer-tools"], "health_score": 32, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["briandowns/spinner"], "name": "briandowns/spinner", "platform": ["cli", "cross-platform", "go"], "pushed_at": "2025-01-20T04:30:31+00:00", "repo": "briandowns/spinner", "stars": 2531, "tags": ["spinner", "progress-indicator", "terminal", "golang", "cli-ux", "command-line"], "topics": ["go", "golang", "spinner", "statusbar", "cli", "terminal", "terminal-ui", "progress-bar", "progressbar", "indicator"], "urls": [], "use_cases": ["add a spinner to a go cli while a task runs", "show progress indicator in terminal application", "animated loading indicator for command line tool", "display activity status in golang terminal app", "customize terminal spinner character sets", "show wait cursor during long-running cli operation"], "what_it_is": "A Go package providing 90 configurable terminal spinner/progress indicators for command-line applications. It lets developers easily add animated loading indicators to any terminal program.", "when_to_avoid": ["you need rich progress bars with percentages and multi-line dashboards", "you are not building a terminal application", "you need a TUI framework with full layout control"], "when_to_choose": ["you are writing a Go CLI and need a simple animated spinner", "you want many prebuilt spinner styles with easy configuration", "you need a lightweight, dependency-light terminal indicator"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spinner", "repo": "briandowns/spinner", "role": "main", "score": 24}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "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:58.865413+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:58.865413+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:25:19.423745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "925aec15e342e321c7364f4a04340a7921068367a2ec8f38f1b2e7858e159d63", "fetched_at": "2026-08-28T04:06:58.865413+00:00", "kind": "readme", "missing": false, "url": "https://github.com/briandowns/spinner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 2, "longevity": 100, "rhythm": 8}, "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": 4282, "days_push": 590, "days_rel": 590, "gap_med": null, "n_releases_24m": 1}, "score": 24, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}