{"adoption": {"forks": 334, "observed_at": "2026-08-28T04:05:58.098013+00:00", "stars": 1951}, "canonical_url": "https://ross.abutalabs.com/products/open-vibe-island", "card": {"archived": false, "artifact_type": "application", "description": "Native macOS control center for AI coding agents — monitor sessions, approve actions, and jump back instantly.", "domain": ["developer-tools", "operating-systems"], "enriched": true, "function": ["monitoring", "developer-tools", "agent-framework", "gui"], "health_score": 100, "homepage": null, "language": "Swift", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Octane0411/open-vibe-island"], "name": "Octane0411/open-vibe-island", "platform": [], "pushed_at": "2026-08-26T10:05:05+00:00", "repo": "Octane0411/open-vibe-island", "stars": 1951, "tags": ["menu-bar-app", "ai-coding-agents", "claude-code", "codex", "gemini-cli", "notch-app", "local-first", "swiftui", "session-monitoring", "vibe-coding", "ai-agents", "macos", "desktop"], "topics": ["agent", "claudecode", "codex", "gemini-cli", "island", "opencode", "vibe", "vibe-coding", "vibe-island", "codeisland", "code-island", "vibeisland", "open-island", "openisland"], "urls": [], "use_cases": ["monitor claude code sessions from the mac menu bar", "approve agent permission prompts without switching windows", "jump back to the terminal running my AI coding agent", "track status of multiple AI coding agents at once", "open-source alternative to Vibe Island", "see when codex or gemini cli needs my attention"], "what_it_is": "Open Island is a native macOS menu bar/notch application that acts as a control center for AI coding agents like Claude Code, Codex, and Gemini CLI. It monitors agent sessions in real time, lets you approve permission requests, and jumps you back to the exact terminal or IDE session.", "when_to_avoid": ["you are on Linux or Windows — it is macOS-only", "you need a cross-platform or web-based agent dashboard", "you want cloud sync or team features — it is strictly local-first"], "when_to_choose": ["you run AI coding agents (Claude Code, Codex, Gemini CLI, etc.) on macOS and want a native, local-first monitor", "you want an open-source, free alternative to Vibe Island", "you work across multiple terminals and IDEs and need quick session switching"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/open-vibe-island", "repo": "Octane0411/open-vibe-island", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-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-08-28T04:05:58.098013+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.098013+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:06:48.505924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01502d7741c009e5f26491e7573410982fed8e848d9983340a1debe751826111", "fetched_at": "2026-08-28T04:05:58.098013+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Octane0411/open-vibe-island"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 10, "rhythm": 99}, "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": 153, "days_push": 7, "days_rel": 9, "gap_med": 0, "n_releases_24m": 52}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}