{"adoption": {"forks": 276, "observed_at": "2026-08-28T04:06:37.846370+00:00", "stars": 2332}, "canonical_url": "https://ross.abutalabs.com/products/codeisland", "card": {"archived": false, "artifact_type": "application", "description": "Real-time AI coding agent status panel in your MacBook notch — live status, approvals & replies for 13 AI tools, with iPhone & Apple Watch companions", "domain": ["developer-tools", "apple-ecosystem"], "enriched": true, "function": ["monitoring", "developer-tools", "gui"], "health_score": 99, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["wxtsky/CodeIsland"], "name": "wxtsky/CodeIsland", "platform": [], "pushed_at": "2026-08-15T06:32:02+00:00", "repo": "wxtsky/CodeIsland", "stars": 2332, "tags": ["dynamic-island", "notch", "macos-app", "ai-coding-agents", "apple-watch", "status-panel", "claude-code", "permission-approvals", "notification", "ai-agents", "macos", "swift", "ios", "desktop"], "topics": ["ai-agents", "claude-code", "developer-tools", "dynamic-island", "macos", "notch", "swift"], "urls": [], "use_cases": ["monitor AI coding agent status without switching windows", "approve or deny AI agent tool permission requests from the notch", "reply to AI agent questions while working in another app", "see when Claude Code or Codex finishes a task", "mirror AI agent session status to iPhone and Apple Watch", "jump directly to the terminal tab or IDE window of an active AI session"], "what_it_is": "CodeIsland is a macOS menu-bar/notch application that displays a real-time status panel for AI coding agents directly in the MacBook notch, styled like a Dynamic Island. It connects to 14 AI coding tools (Claude Code, Codex, Gemini CLI, Cursor, etc.) via Unix socket IPC to show session status, tool calls, and permission requests, with companion iPhone and Apple Watch apps.", "when_to_avoid": ["you use Linux or Windows instead of macOS", "your MacBook has no notch and you don't want a notch-style panel", "you only use AI tools not among the 14 supported integrations", "you need a cross-platform or CLI-only monitoring solution"], "when_to_choose": ["you run multiple AI coding agents (Claude Code, Codex, Gemini CLI, etc.) on a MacBook with a notch", "you want to approve agent permission requests without leaving your editor", "you want live agent status on your iPhone or Apple Watch", "you prefer a native macOS app with pixel-art polish and bilingual UI"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/codeisland", "repo": "wxtsky/CodeIsland", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "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:37.846370+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.846370+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:37:57.814632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "185b52f9ace9a0d0fcfbfb6b0242944d564dec76694fc229e6558963c620635d", "fetched_at": "2026-08-28T04:06:37.846370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wxtsky/CodeIsland"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 10, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 149, "days_push": 18, "days_rel": 18, "gap_med": 0, "n_releases_24m": 32}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}