Model or dataset
Octane0411/open-vibe-island avatar
Octane0411/open-vibe-island

Open Island: a GPL-3.0 notch overlay that watches 13 coding agents

Native macOS control center for AI coding agents — monitor sessions, approve actions, and jump back instantly.

2,015 stars342 forksSwiftGPL-3.0

At a glance

What is it?
Open Island is a native macOS menu-bar and notch control surface for AI coding agents, built in SwiftUI and AppKit. It is local-first and hook-driven, and its value depends on how much of your agent stack it can attach to without a server.
Who is it for?
Adopt Open Island if you run several agents at once on macOS and your terminals are Terminal.app, Ghostty, iTerm2, WezTerm, tmux, Zellij, cmux, Kaku, or Warp, since those get full jump-back rather than workspace activation. Skip it if you work mostly in JetBrains IDEs, where the README lists only workspace activation, or if you need Grok Build permission round-trips, which the compatibility table says are not implemented yet.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem Open Island targets: agents that ask for permission while you are looking elsewhere

An AI coding agent runs in a terminal or an IDE panel. When it wants to run a command, edit a file, or continue a long turn, it either waits for an approval or finishes silently. If you have three sessions open, you find out by switching windows. The README frames the product as a notch or top-bar surface that shows session status, permission approvals, and a one-click jump back to the terminal that owns the session. The intended user is someone running several agents at once on macOS, not someone who runs one agent in one window. The project positions itself openly against Vibe Island, a closed-source app with the same idea: the README asks why you would pay for a closed-source app just to monitor your coding agents. That framing matters because it sets the adoption test. Open Island is a convenience layer over tools you already run, not a replacement for any of them.

Hook-driven session tracking, and why process discovery is the fallback rather than the mechanism

The architecture visible in the README is a set of per-agent integrations that write into Open Island, plus a UI process that renders them. For Claude Code the README lists hook integration, JSONL session discovery, a status line bridge, and usage tracking. For Codex it lists hooks for SessionStart, UserPromptSubmit, and Stop by default, with PreToolUse and PostToolUse parseable but not enabled by default. OpenCode uses a JavaScript plugin. Pi and Oh My Pi use TypeScript extensions dropped at ~/.pi/agent/extensions/open-island.ts and ~/.omp/agent/extensions/open-island.ts. Cursor, Gemini CLI, Kimi CLI, and Grok Build each have their own hook config file. The Claude Code forks (Qoder, Qwen Code, Factory, CodeBuddy) reuse the same hook format with different config paths. Jump-back is a separate mechanism per terminal: TTY targeting for Terminal.app, ID matching for Ghostty, a Unix socket API for cmux, CLI pane targeting for WezTerm, Kaku, and Zellij, session or TTY matching for iTerm2, session/window/pane targeting for tmux, and a SQLite pane lookup plus accessibility menu click for Warp. The IDE entries are weaker: VS Code, Cursor, Windsurf, Trae, and Zed get workspace activation through a CLI, and Zed additionally detects an integrated terminal. Two details in the README are worth flagging because they show where the abstraction leaks. Claude Code Desktop runs as a TTY-less subprocess invisible to process discovery, so liveness follows the running desktop app instead. And the Claude Code usage panel is account-wide but seeded by the CLI status line, which the README itself notes. Both are honest admissions that not every agent exposes the same signals.

Getting it running: a DMG, then hook installation from Settings

The README's Quick Start gives two paths. Option 1 is downloading the latest DMG from the releases page; the feature table states the DMG is signed and notarized and that updates go through Sparkle. Option 2 is the source route, which the supplied README excerpt cuts off before showing commands, so the exact build invocation cannot be confirmed from this material. What the README does state is that hook install and uninstall happen from the app's Settings, alongside a usage dashboard. That is the step that matters, because without hooks the app has little to display. The config paths you should expect to see touched are ~/.cursor/hooks.json, ~/.gemini/settings.json, ~/.qoder/settings.json, ~/.qwen/settings.json, ~/.factory/settings.json, ~/.codebuddy/settings.json, ~/.grok/hooks/open-island.json, and the [[hooks]] table in ~/.kimi/config.toml. Pi and Oh My Pi need a TypeScript extension file placed in their extension directories. Notification behavior is configurable: there is an auto-height panel for permission requests and session events, plus configurable system sounds and a mute toggle. The app is localized in English and Simplified Chinese. One gap to note: the README does not document a CLI, a config file for Open Island itself, or a headless mode. Everything routes through the GUI.

Where Open Island is the wrong tool

The compatibility table is the best evidence of the project's boundaries, and it does not hide them. Grok Build support is listed with fire-and-forget events and an explicit note that there is no permission round-trip yet, which means the approval half of the product does not apply there. Gemini CLI is also described as fire-and-forget. If your workflow depends on approving or denying agent actions from the notch, those two agents will not give you that. The IDE coverage is the second boundary. JetBrains IDEs are listed at workspace level only, as is Zed apart from terminal detection, and VS Code, Cursor, Windsurf, and Trae activate a workspace through their CLI. If you live in a JetBrains IDE, the jump-back promise is weaker than the marketing line suggests. Third, the app is macOS-only by construction: SwiftUI and AppKit, notch or top bar. There is no Linux or Windows story in this material. Fourth, the GPL-3.0 license is a real constraint for anyone who wants to ship a modified build inside a closed product. The README invites you to fork, mod, and ship your own version, which is accurate under GPL-3.0, but derivative distribution carries the same license. That is a description of the license, not legal advice; check with counsel if you plan to distribute.

How it differs from a terminal multiplexer or a single-agent status line

The obvious comparison is tmux or Zellij with a status bar, or the status line that Claude Code itself exposes. Those show you one session in one pane, and they are terminal-native. Open Island sits outside the terminal, aggregates across agents, and turns the notch into the status surface, with the terminal as the jump target rather than the display. That is a different bet: it assumes you care more about which session needs you than about the session's contents. The second comparison is Vibe Island, which the README names directly and describes as closed-source. The difference is not features, since the README claims parity in intent; it is distribution and inspection. Open Island is GPL-3.0, local-first, with no server, no telemetry, and no account according to the README. If you need to audit what a menu-bar app sees, that distinction is the whole argument. If you only run Claude Code in one terminal and never context-switch, a status line costs nothing and adds no process.

Release cadence and what maintenance looks like from the outside

Three releases land within roughly ten days in the supplied data: v1.1.8 on 2026-08-24 with Zed support and display reliability fixes, v1.1.9 on 2026-09-03 with usage windows, Conductor support, and stability fixes, and v1.2.0 the same day with Grok Build, Pi, and Oh My Pi. That is a fast cadence with small, named scopes. It also tells you where the maintenance cost sits: every new agent or terminal is another integration to keep working, and agents change their hook formats and payloads. The README already notes that Grok Build uses a camelCase payload and that Kimi CLI reuses the Claude payload, which is the kind of detail that breaks when an upstream tool ships a change. The app bundles Sparkle for auto-update, so staying current is not manual. For a fork, though, you inherit that integration surface plus the GPL-3.0 obligations, and the README's contributing guide is the only stated process. There is no published plugin API in this material, so adding an agent appears to mean changing the app rather than writing an external extension, with Pi and Oh My Pi being the exception because they host TypeScript extensions on their side.

What to check before you install

Verify three things against your own machine. First, whether your agent's hook config file already exists and what is in it, since Open Island will modify files like ~/.cursor/hooks.json or ~/.gemini/settings.json and you should know what it adds. Second, whether your terminal is in the full jump-back list or the workspace-activation list, because that determines whether the one-click jump actually lands on the right pane. Third, whether the agent you rely on has permission round-trips or only fire-and-forget events, since Grok Build and Gemini CLI are documented as the latter. The README's claim of local-first with no server, no telemetry, and no account is checkable: the app is Swift and the source is on GitHub under GPL-3.0, so you can read the network code before trusting it. If all three checks pass, the install is a DMG and a Settings toggle. If any fails, the notch will show you less than the feature table implies.

Editorial conclusion

Adopt Open Island if you run several agents at once on macOS and your terminals are Terminal.app, Ghostty, iTerm2, WezTerm, tmux, Zellij, cmux, Kaku, or Warp, since those get full jump-back rather than workspace activation. Skip it if you work mostly in JetBrains IDEs, where the README lists only workspace activation, or if you need Grok Build permission round-trips, which the compatibility table says are not implemented yet. Before installing, verify that your agent's hook config path exists on disk (for example ~/.cursor/hooks.json or ~/.gemini/settings.json), because hook installation is what makes session tracking work at all.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. Octane0411/open-vibe-island on GitHub
  4. README
  5. Releases
Community notes

Community notes