{"adoption": {"forks": 73, "observed_at": "2026-08-28T04:05:19.115922+00:00", "stars": 1666}, "canonical_url": "https://ross.abutalabs.com/products/batt", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Control and limit battery charging on Apple Silicon MacBooks.", "domain": ["hardware", "apple-ecosystem", "developer-tools"], "enriched": true, "function": ["cli", "configuration-management", "developer-tools"], "health_score": 99, "homepage": null, "language": "Go", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["charlie0129/batt"], "name": "charlie0129/batt", "platform": ["cli"], "pushed_at": "2026-08-14T09:34:53+00:00", "repo": "charlie0129/batt", "stars": 1666, "tags": ["battery-health", "charge-limiting", "apple-silicon", "macbook", "smc", "daemon", "command-line", "macos"], "topics": ["apple", "battery", "longevity", "mac", "macbook", "macos", "smc", "bclm"], "urls": [], "use_cases": ["limit macbook battery charging to 80 percent", "prevent battery swelling on apple silicon mac", "extend battery lifespan by keeping charge low", "control magsafe led charging indicator", "cut wall power and run macbook on battery while plugged in", "automatically calibrate macbook battery", "set custom charge limit below 80 percent on macos"], "what_it_is": "batt is a Go-based tool that controls and limits battery charging on Apple Silicon MacBooks by setting maximum charge levels via SMC keys. It runs as a daemon to keep the battery at a configurable limit (e.g., 80%) to prolong battery lifespan, with advanced features like MagSafe LED control and power adapter cutoff.", "when_to_avoid": ["you are on macOS 26.4+ and the built-in 80-100% charge limit range meets your needs", "you have an Intel Mac, since it targets Apple Silicon firmware", "you need cross-platform battery management beyond macOS"], "when_to_choose": ["you have an Apple Silicon MacBook and want to cap charging below the native macOS limit", "you need a charge limit under 80% or are on a macOS version without native charge limiting", "you want power-user features like MagSafe LED control or adapter power cutoff"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/batt", "repo": "charlie0129/batt", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "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:05:19.115922+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.115922+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:42:58.080643+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd8b09f1b70c5ff876a788ee55f3aedf6ed9f833358dc84f2c4a71636d26456b", "fetched_at": "2026-08-28T04:05:19.115922+00:00", "kind": "readme", "missing": false, "url": "https://github.com/charlie0129/batt"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 89, "rhythm": 94}, "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": 1249, "days_push": 19, "days_rel": 43, "gap_med": 12, "n_releases_24m": 22}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}