Model or dataset
erha19/ping-island avatar
erha19/ping-island

Ping Island: a macOS menu bar command center for AI coding agents

A Dynamic Island-style command center for managing all your AI coding agents on macOS.

1,105 stars125 forksSwiftApache-2.0

At a glance

What is it?
Ping Island watches Claude Code, Codex, Gemini CLI and other hooks and surfaces session status in the macOS menu bar or notch. Here is how it installs, how the hook plumbing works, and where it stops being the right tool.
Who is it for?
Ping Island suits macOS 14+ developers who already run several hook-capable CLI agents and lose track of which one is waiting on them. It is the wrong tool if you work on Linux or Windows, if your agent does not emit Claude-style or Codex-style hooks, or if you will not grant Accessibility and Apple Events permissions for focus jumping.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days 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 Ping Island solves for multi-agent workflows

Running one coding agent in one terminal is manageable. Running Claude Code in one window, Codex CLI in another, and Gemini CLI in a third is not, because each of them blocks on a question you cannot see until you switch to that window. Ping Island's stated purpose is to watch active coding sessions, let you answer follow-up questions, and jump back to the right terminal or IDE window. The README describes it as a macOS menu bar app that expands into a compact session surface when your coding agents need attention. The audience is narrow and specific: macOS users who run several hook-capable command line agents at once and want one place to see which one is waiting. It is not a general terminal multiplexer, and it does not run the agents for you. It sits on top of clients you already have installed and configured.

How the hook listener turns agent events into a menu bar surface

The mechanism is event-driven rather than screen-scraping. According to the README, Ping Island listens to Claude-style hooks, Codex hooks, Gemini CLI hooks, and Antigravity CLI plugin hooks. That means each supported client is responsible for emitting its own lifecycle events, and Ping Island consumes them. The session surface is then rendered either in the menu bar or, on notch-screen Macs, expanded from the notch with session context and action controls. The README also documents an optional detached mode: you can detach the active pet from the notch and keep session status nearby while you work across other windows. Two details in the repository layout support this architecture. There is a Prototype directory described as a Swift 6.1 package used for tests, and a Config directory at the top level. The build instructions confirm the Prototype package tests are part of the toolchain requirement. What the README does not document is the exact hook payload schema, so anyone writing a custom integration will need to read the source rather than the docs.

Installing Ping Island with Homebrew Cask and running a first session

The README gives Homebrew Cask as the primary install path. Run the command below, then launch the app from your Applications folder.

bash
brew install --cask ping-island

The Cask installs Ping Island.app. If you prefer a manual install, the README points to the official website or the GitHub Releases page for the latest DMG, after which you move Ping Island.app into Applications. Once the app is running, start the clients you want it to monitor. On first launch, macOS may ask you to confirm the app or grant Accessibility and Apple Events permissions, which the README ties to the focus features that jump you back to a terminal or IDE window. If you would rather build it yourself, the repository expects macOS 14+ and an Xcode toolchain capable of building the Xcode project and the Swift 6.1 Prototype package tests.

bash
git clone https://github.com/erha19/ping-island.git
cd ping-island
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Debug build

The Debug build produces the app locally. For a locally shareable package, the repository ships a packaging script:

bash
./scripts/package-unsigned.sh

The README states that this script re-signs the built app bundle with a consistent ad-hoc signature before creating the DMG and ZIP, which helps embedded frameworks launch more reliably on another machine. The output lands in releases/unsigned/ as PingIsland-<version>.dmg and PingIsland-<version>.zip. The README is explicit that the package is still unsigned for distribution and not notarized, so first launch may require opening it from Finder's context menu or removing the quarantine attribute manually. What you should see after a successful install is the menu bar item, and after starting a supported client, a session entry for that client.

Where Ping Island stops being the right tool

The hardest constraint is platform. This is a macOS 14+ application, and the build instructions require an Xcode toolchain. There is no Linux or Windows build in the top-level repository entries. The README does mention a Linux PingIslandBridge asset published by the release workflow, which Ping Island can download when bootstrapping Linux SSH hosts, but that is a bridge for remote hosts, not a desktop client. The second constraint is client coverage in practice. The README lists a long set of supported clients, including Claude Code, ChatGPT, Codex CLI, Gemini CLI, Antigravity CLI, Hermes Agent, Pi Agent, Oh My Pi, Qwen Code, Kimi CLI, OpenClaw, OpenCode, Cursor, Qoder IDE, Qoder CN IDE, CodeBuddy, and GitHub Copilot. But the event mechanism is hooks, and hooks have to be installed and configured per client. A client that appears in the list still needs its hooks wired up on your machine. The README does not document a per-client setup walkthrough, so this is the first thing to verify rather than assume. Third, the focus-jumping features depend on macOS permissions. If you cannot grant Accessibility and Apple Events access in your environment, you lose the ability to jump back to the originating window, which is a large part of the value.

How Ping Island compares with running agents in a terminal multiplexer

The obvious alternative is tmux or a similar terminal multiplexer with split panes, where every agent runs in its own pane and you cycle between them. The difference in approach is fundamental. A multiplexer shows you the raw terminal output of each agent, including the full question and context, but it only works while you are looking at the terminal and it has no idea which pane is blocked versus which is still generating. Ping Island does not render the agent's terminal at all. It consumes hook events and renders a compact status surface with action controls, which is why it can live in the menu bar or the notch while you are in an IDE. The trade-off is that Ping Island depends on the client emitting useful hook events. If a client's hooks are sparse, the menu bar surface will be sparse too. A multiplexer degrades gracefully because it is just a terminal. Ping Island degrades into an empty or uninformative surface when the hook data is not there.

Release cadence, licensing and the cost of keeping up

The project is not archived, and the last push was on 2026-09-13, the same day as the v0.31.0 release. Recent releases include v0.31.0 on 2026-09-13, v0.30.0 on 2026-09-09, and v0.29.0 on 2026-09-03, which is a roughly weekly cadence across those three versions. That cadence is a real cost for anyone pinning a version: the Homebrew Cask will move forward, and the release workflow uses Sparkle appcasts backed by GitHub Releases, so updates are pushed rather than pulled. The README documents the notarized release flow and the appcast setup in docs/sparkle-release.md, and the Homebrew Cask release notes in docs/homebrew-cask-release.md. The license is Apache-2.0, with a LICENSE.md and a NOTICE file at the top level. Apache-2.0 permits commercial use and modification, and it includes a patent grant, but it also requires preserving the NOTICE file and stating changes. This is a description of the license text, not legal advice; if you plan to redistribute a modified build, read the license and NOTICE yourself.

Editorial conclusion

Ping Island suits macOS 14+ developers who already run several hook-capable CLI agents and lose track of which one is waiting on them. It is the wrong tool if you work on Linux or Windows, if your agent does not emit Claude-style or Codex-style hooks, or if you will not grant Accessibility and Apple Events permissions for focus jumping. Before adopting it, install the Cask build, start one supported client, and confirm that a session actually appears in the menu bar rather than assuming every client in the README list is wired up in your setup.

Frequently asked questions

Does Ping Island work on Linux or Windows?

No. The README describes it as a macOS 14+ menu bar app, and the build instructions require an Xcode toolchain. The release workflow does publish a Linux PingIslandBridge asset, but that is used when bootstrapping Linux SSH hosts, not as a desktop client.

Which coding agents does Ping Island support?

The README lists Claude Code, ChatGPT, Codex CLI, Gemini CLI, Antigravity CLI, Hermes Agent, Pi Agent, Oh My Pi, Qwen Code, Kimi CLI, OpenClaw, OpenCode, Cursor, Qoder IDE, Qoder CN IDE, CodeBuddy, and GitHub Copilot. Support is implemented through each client's hooks, so a listed client still needs its hooks configured on your machine.

How do I install Ping Island?

The README gives Homebrew Cask as the primary path with brew install --cask ping-island. Alternatively, download the latest DMG from the official website or the GitHub Releases page and move Ping Island.app into your Applications folder.

Why does Ping Island ask for Accessibility and Apple Events permissions?

The README states that on first launch macOS may ask you to confirm the app or grant Accessibility and Apple Events permissions for the focus features. Those permissions back the ability to jump back to the right terminal or IDE window.

Official sources

  1. erha19/ping-island on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Community notes

Community notes