{"adoption": {"forks": 74, "observed_at": "2026-08-28T04:04:03.822704+00:00", "stars": 1230}, "canonical_url": "https://ross.abutalabs.com/products/vjeantet-alerter", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Send User Alert Notification on MacOS from the command-line.", "domain": ["developer-tools", "apple-ecosystem"], "enriched": true, "function": ["cli", "developer-tools", "workflow-automation"], "health_score": 93, "homepage": null, "language": "HTML", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["vjeantet/alerter"], "name": "vjeantet/alerter", "platform": ["cli"], "pushed_at": "2026-07-22T07:08:05+00:00", "repo": "vjeantet/alerter", "stars": 1230, "tags": ["macos-notifications", "user-alerts", "swift", "homebrew", "interactive-notifications", "notification", "command-line", "automation", "macos"], "topics": [], "urls": [], "use_cases": ["send a macos notification from a shell script", "show an alert with action buttons and capture the user's choice", "prompt the user for a text reply from the command line", "schedule a reminder notification at a specific time", "get script feedback when a notification is dismissed or times out", "notify me when a long-running deploy finishes"], "what_it_is": "Alerter is a Swift-based command-line tool for sending persistent alert notifications on macOS, with support for reply inputs, action buttons, scheduling, and timeouts. It exits when the user interacts with the alert and prints the result to stdout as plain text or JSON.", "when_to_avoid": ["you need cross-platform desktop notifications (Linux or Windows)", "you only need transient banners rather than alerts that stay until dismissed", "you target macOS versions older than 13.0"], "when_to_choose": ["you need interactive macOS notifications (reply or action buttons) from scripts or CI-like workflows", "you want machine-readable (JSON) output of how the user responded to an alert", "you need scheduled or delayed notifications from the terminal"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vjeantet-alerter", "repo": "vjeantet/alerter", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "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:04:03.822704+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.822704+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:15:04.006651+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2365ea662a5417aba5a43488583d1d61476d50f04a2e5a75ec511e1292c05a2", "fetched_at": "2026-08-28T04:04:03.822704+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vjeantet/alerter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 71}, "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": 3909, "days_push": 42, "days_rel": 195, "gap_med": 0, "n_releases_24m": 4}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}