{"adoption": {"forks": 449, "observed_at": "2026-08-28T04:10:25.986147+00:00", "stars": 8841}, "canonical_url": "https://ross.abutalabs.com/products/bubbles", "card": {"archived": false, "artifact_type": "library", "description": "TUI components for Bubble Tea 🫧", "domain": ["developer-tools", "web-development"], "enriched": true, "function": ["ui-components", "terminal-ui", "cli"], "health_score": 100, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["charmbracelet/bubbles"], "name": "charmbracelet/bubbles", "platform": ["go", "cli", "cross-platform"], "pushed_at": "2026-08-24T09:14:22+00:00", "repo": "charmbracelet/bubbles", "stars": 8841, "tags": ["tui", "bubbletea", "elm-architecture", "terminal-components", "charmbracelet", "command-line"], "topics": ["elm-architecture", "tui", "terminal", "cli", "hacktoberfest"], "urls": [], "use_cases": ["build a terminal dashboard with tables and scrolling lists", "add a text input or textarea to a Bubble Tea CLI app", "show a spinner while a long-running task executes in the terminal", "create interactive TUI forms with multiple input fields", "build a chat-like terminal interface with a message input area"], "what_it_is": "Bubbles is a collection of ready-made TUI components (spinner, text input, textarea, table, and more) for building terminal applications with the Bubble Tea framework in Go. It provides common UI primitives following the Elm architecture so developers can compose rich terminal interfaces quickly.", "when_to_avoid": ["you are not using Go or the Bubble Tea framework", "you need a full TUI framework rather than individual components", "you are building a graphical (non-terminal) application"], "when_to_choose": ["you are building a Go terminal app with Bubble Tea and need common UI components", "you want production-tested TUI primitives instead of writing your own", "you want components that follow the Elm architecture model-update-view pattern"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bubbles", "repo": "charmbracelet/bubbles", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "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:10:25.986147+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:25.986147+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.591434+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84ba3c682e949a0a16ee64c7657b6eb1157b7181fda38136c0d5591fd4fb757d", "fetched_at": "2026-08-28T04:10:25.986147+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charmbracelet/bubbles"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "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": 2419, "days_push": 9, "days_rel": 9, "gap_med": 38.5, "n_releases_24m": 9}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}