{"adoption": {"forks": 120, "observed_at": "2026-09-03T02:15:11.667175+00:00", "stars": 1084}, "canonical_url": "https://ross.abutalabs.com/products/ping-island", "card": {"archived": false, "artifact_type": "application", "description": "A Dynamic Island-style command center for managing all your AI coding agents on macOS.", "domain": ["developer-tools", "operating-systems"], "enriched": true, "function": ["monitoring", "developer-tools", "gui", "agent-framework"], "health_score": 100, "homepage": "https://erha19.github.io/ping-island/", "language": "Swift", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["erha19/ping-island"], "name": "erha19/ping-island", "platform": [], "pushed_at": "2026-09-02T15:43:46+00:00", "repo": "erha19/ping-island", "stars": 1084, "tags": ["dynamic-island", "menu-bar", "claude-code", "codex", "gemini-cli", "ai-coding-agents", "session-monitor", "swift", "ai-agents", "macos", "desktop"], "topics": ["agents", "island", "vibe-coding", "vibe-island", "claude-code", "codex", "vibe"], "urls": [], "use_cases": ["monitor claude code sessions from the mac menu bar", "manage multiple ai coding agents in one place", "get notified when an ai agent needs my input", "jump back to the terminal or ide window running an agent session", "answer follow-up questions from codex or gemini cli without switching windows", "track vibe coding agent sessions on macos"], "what_it_is": "Ping Island is a macOS Dynamic Island-style menu bar application for monitoring and managing AI coding agent sessions like Claude Code, Codex, and Gemini CLI. It shows live session status, lets you answer agent follow-up questions, and routes you back to the right terminal or IDE window.", "when_to_avoid": ["you are not on macOS 14 or later", "you do not use AI coding agents in your workflow", "you need a cross-platform or Linux agent monitor"], "when_to_choose": ["you run multiple AI coding agents (Claude Code, Codex, Gemini CLI, etc.) on macOS and lose track of which session needs attention", "you want a Dynamic Island-style control surface to monitor and steer agent sessions", "you want to respond to agent prompts without hunting for the right window"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ping-island", "repo": "erha19/ping-island", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:11.667175+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:53:26.172612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "92079b56dd6b3d9bcf96b2aacaa77de277081d2943b1315068db48b6d29d25f2", "fetched_at": "2026-09-03T02:15:11.667175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erha19/ping-island"}, {"content_hash": "24228b0a3531a7e91ac4903c3da06dc6552f3ad70512748846fc88475357e719", "fetched_at": "2026-08-29T12:54:54.768441+00:00", "kind": "homepage", "missing": false, "url": "https://erha19.github.io/ping-island/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 10, "rhythm": 88}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 152, "days_push": 0, "days_rel": 3, "gap_med": 0.0, "n_releases_24m": 71}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}