ping-island

作者 erha19已验证

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

1,068
Stars
116
Forks
Swift
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/erha19/ping-island

快速入门

使用 ping-island 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

Ping Island app icon  Ping Island

AI coding session monitor for the macOS menu bar
WebsiteTry itInstallFeaturesSupported ClientsBuildContributorsPrivacy
English | 简体中文

Latest release Release downloads macOS 14 or later Swift 6.1 Supports 12 plus client families Apache 2.0 license

Ping Island preview

Watch active coding sessions, answer follow-up questions, and jump back to the right terminal or IDE window.

Official website: erha19.github.io/ping-island

Claude mascot  Codex mascot  Gemini CLI mascot  Hermes Agent mascot  Pi Agent mascot  Qwen Code mascot  Kimi CLI mascot  OpenClaw mascot  OpenCode mascot  Cursor mascot  Qoder mascot  CodeBuddy mascot  GitHub Copilot mascot

Claude Code · Codex · Gemini CLI · Antigravity CLI · Hermes Agent · Pi Agent · Qwen Code · Kimi CLI · OpenClaw · OpenCode · Cursor · Qoder · Qoder CN · CodeBuddy · GitHub Copilot

Let’s try it!

Detach the active pet from the notch and keep session status nearby while you work across other windows.

Ping Island detached pet interaction demo

On notch-screen Macs, Ping Island expands from the notch with session context and action controls when an agent needs attention.

Ping Island notch interaction demo

Installation

Install with Homebrew Cask

brew install --cask ping-island

Download a Release

  1. Visit the official website for the product overview and latest download link, or go straight to Releases.
  2. Download the latest DMG.
  3. Move Ping Island.app into your Applications folder.
  4. Launch the app and start the clients you want Ping Island to monitor.

On first launch, macOS may ask you to confirm the app or grant Accessibility / Apple Events permissions for focus features.

Build from Source

Requires macOS 14+ and an Xcode toolchain that can build the Xcode project and the Swift 6.1 Prototype package tests.

git clone https://github.com/erha19/ping-island.git
cd ping-island

# Debug build
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Debug build

# Release build
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Release build

To create a locally shareable unsigned package for local testing:

./scripts/package-unsigned.sh

The 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 package is still unsigned for distribution and not notarized, so first launch may still require Open from Finder's context menu or manual quarantine removal. The generated files land in releases/unsigned/ as PingIsland-<version>.dmg and PingIsland-<version>.zip. The DMG uses the repo-tracked installer artwork at docs/images/ping-island-dmg-installer-background.png by default; set PING_ISLAND_DMG_BACKGROUND_SOURCE if you want to preview a different background locally.

To create signed and notarized release packages in GitHub Actions, configure the release secrets described in docs/sparkle-release.md and run .github/workflows/release-packages.yml against a v* tag or the manual workflow dispatch input. Official Homebrew Cask release notes are documented in docs/homebrew-cask-release.md.

The same workflow also publishes a Linux PingIslandBridge asset that Ping Island can download when bootstrapping Linux SSH hosts.

For the full notarized release flow and the GitHub Releases backed Sparkle appcast setup, see docs/sparkle-release.md.

What is Ping Island?

Ping Island is a macOS menu bar app that expands into a compact session surface when your coding agents need attention. It listens to Claude-style hooks, Codex hooks, Gemini CLI hooks, Antigravity CLI plugin hooks, Hermes Agent plugin hooks, Pi Agent extension hooks, Qwen Code hooks, Kimi CLI hooks, OpenClaw internal hooks plus session transcripts, the Codex app-server, OpenCode plugins, and compatible IDE integrations so approvals, input requests, completions, and session summaries show up without babysitting terminal tabs.

If you have seen Vibe Island, Ping Island is positioned as an independent open-source alternative in the same category: a native macOS notch/menu bar surface for monitoring and controlling AI coding sessions.

Features

Ping Island focuses on the moments that actually interrupt coding flow, then keeps them visible and actionable from a native macOS notch surface.

  • Attention-first UI - Stay compact until a session needs approval, input, review, or intervention.
  • Act from the notch - Approve tools, deny requests, and answer follow-up prompts without hunting through tabs.
  • Claude Code auto-approve - Turn on per-session auto-approval when you want Claude Code to stop pausing on every permission request.
  • One-click return - Jump back to the right iTerm2, Ghostty, Terminal.app, tmux pane, or IDE window.
  • SSH terminal support - Bootstrap a remote PingIslandBridge over SSH, rewrite remote hooks to point back at your Mac, forward remote Codex app-server activity, and keep remote terminal activity visible in the same local Island UI.
  • Multi-agent coverage - Track Claude Code, Codex, Gemini CLI, Antigravity CLI, Hermes Agent, Pi Agent, Qwen Code, Kimi CLI, OpenClaw, OpenCode, Cursor, Qoder, Qoder CN, CodeBuddy, WorkBuddy, GitHub Copilot, and other compatible sessions in one place.
  • OpenClaw gateway support - Follow OpenClaw sessions from managed internal hooks, then refill the conversation from OpenClaw's local session transcripts so the Island UI can show the actual back-and-forth instead of a single inbound message.
  • Codex hook + app-server sync - Support Codex CLI hooks, live app-server threads, and rollout parsing fallback when needed.
  • Custom sounds - Pick per-event macOS sounds or import local sound packs for your own notification style.
  • Custom agent mascots - Give each client its own animated mascot override across the notch, session list, and hover UI.
  • Buddy detach in v0.5.0+ - Drag the active Buddy out of the notch so it can stay nearby as an independent floating companion.
  • Hermes courier-fox mascot - Hermes Agent uses a gold courier fox with a winged helmet and satchel so plugin-hook sessions stay visually distinct from the Claude/Qwen family.
  • Pi terminal-cloud mascot - Pi Agent uses its own terminal-cloud mascot so extension-hook sessions are easy to spot in the Island UI.
  • Qwen capybara mascot - Qwen Code now ships with a mint-scarf capybara mascot tuned for prompt, reply, and notification-heavy flows.
  • Kimi keyboard-orb mascot - Kimi CLI keeps its original blue keyboard-orb mascot so its hook sessions stay visually distinct in the README strip and app UI.

Supported Clients

ClientIngressFocus / return pathIsland capabilities
Claude CodeClaude-compatible hooks through PingIslandBridgeTerminal.app, iTerm2, Ghostty, tmux, and IDE terminalsTool approvals, AskUserQuestion replies, compaction alerts, completion popups, auto-approve
Codex App + Codex CLICodex CLI hooks, live codex app-server, rollout parsing fallbackCodex app, terminal, tmux, and IDE terminalsApproval/input requests, live thread sync, usage snapshots, remote app-server forwarding
Gemini CLIGemini CLI hooks in ~/.gemini/settings.jsonCompatible terminal hostsSession lifecycle, tool activity, notifications, pre-compaction events
Antigravity CLIGenerated native plugin under ~/.gemini/antigravity-cli/plugins/ping-island/Compatible terminal hosts and remote SSH sessionsModel invocation, tool activity, errors, and turn-stop status while preserving Antigravity's native permission prompts
Hermes AgentOfficial plugin hooks in ~/.hermes/plugins/ping_island/Hermes CLI terminal hostUser prompts, tool activity, assistant replies, session-end notifications
Pi AgentOfficial extension under ~/.pi/agent/extensions/ping_island/Pi Agent terminal hostExtension event forwarding, client-aware session tracking, terminal-cloud mascot
Qwen CodeOfficial hooks in ~/.qwen/settings.jsonCompatible terminal hosts and remote SSH sessionsPermission prompts, notification popups, stop/session-end handling, remote hook forwarding
Kimi CLIOfficial [[hooks]] entries in ~/.kimi/config.tomlCompatible terminal hostsTool activity, notifications, turn completion, session-end handling
OpenClawManaged internal hooks plus local transcript refreshOpenClaw terminal hostFast hook status, transcript backfill, message/session state
OpenCodeGenerated plugin file under ~/.config/opencode/plugins/OpenCode app and terminal hostPlugin event forwarding into the shared Island UI
CursorClaude-compatible hooks plus optional VS Code-compatible focus extensionCursor project window and active terminalIDE routing, terminal focus, Claude-family session tracking
Qoder / Qoder CN / Qoder CLI / Qoder CN CLI / QoderWorkManaged hook profiles in ~/.qoder/settings.json, ~/.qoder-cn/settings.json, and ~/.qoderwork/settings.jsonQoder and Qoder CN windows, terminal, and supported IDE extension pathsSeparate regional IDE/CLI identities, approvals where supported, notify-only handling for desktop IDEs and QoderWork
CodeBuddy / WorkBuddyManaged hook profiles plus optional VS Code-compatible focus extensionApp windows, terminal, and supported IDE extension pathsClaude-family session tracking, client-aware jump-back, follow-up visibility
GitHub CopilotCopilot hook protocolCompatible terminal hostsCopilot CLI / agent hook event status

Testing

The fastest full-repo regression path is:

./scripts/test.sh

That covers:

swift test --package-path Prototype
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Debug CODE_SIGNING_ALLOWED=NO test -only-testing:PingIslandTests
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Debug CODE_SIGN_IDENTITY=- test

Useful targeted slices:

swift test --package-path Prototype --filter IslandBridgeE2ETests
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Debug CODE_SIGNING_ALLOWED=NO test -only-testing:PingIslandTests
xcodebuild -project PingIsland.xcodeproj -scheme PingIsland -configuration Debug CODE_SIGN_IDENTITY=- test -only-testing:PingIslandUITests

If PingIslandUITests-Runner stays suspended on macOS, run the UI tests from Xcode with a valid local signing identity and check amfid / AppleSystemPolicy logs before treating it as an app regression.

Settings

Ping Island currently ships a 4-category settings panel:

  • General - launch at login and baseline app behavior
  • Display - notch display target and placement behavior
  • Mascot - client mascot previews, per-client overrides, animation states
  • Sound - event-specific sounds, sound pack mode, sound pack import

Custom Sounds

Ping Island currently supports three sound modes under Settings -> Sound:

  • System sounds - choose a macOS sound for each event.
  • Built-in 8-bit - use Island's bundled retro sound set, including the fixed client startup sound.
  • Sound pack - load a local OpenPeon / CESP-compatible pack from disk.

Quick setup

  1. Open Settings -> Sound.
  2. Turn on Enable sounds.
  3. Pick the mode you want:
    • System sounds if you just want a different macOS sound per event.
    • Sound pack if you want fully custom audio files.
  4. Preview each event with the play button and leave only the event toggles you want enabled.

Import a local sound pack

  1. Switch Sound mode to Sound pack.
  2. Click Import local sound pack.
  3. Choose a folder that contains openpeon.json.
  4. Pick the imported pack from the Sound pack dropdown.

Ping Island also auto-discovers packs placed under ~/.openpeon/packs and ~/.claude/hooks/peon-ping/packs.

Minimal sound pack layout

my-pack/
  openpeon.json
  session-start.wav
  attention.ogg
  complete.mp3
  error.wav
  limit.wav
{
  "cesp_version": "1.0",
  "name": "my-pack",
  "display_name": "My Pack",
  "categories": {
    "task.acknowledge": {
      "sounds": [{ "file": "session-start.wav", "label": "Session Start" }]
    },
    "input.required": {
      "sounds": [{ "file": "attention.ogg", "label": "Attention" }]
    },
    "task.complete": {
      "sounds": [{ "file": "complete.mp3", "label": "Complete" }]
    },
    "task.error": {
      "sounds": [{ "file": "error.wav", "label": "Error" }]
    },
    "resource.limit": {
      "sounds": [{ "file": "limit.wav", "label": "Limit" }]
    }
  }
}

Event mapping

  • Processing started checks task.acknowledge, then session.start.
  • Attention required checks input.required.
  • Task completed checks task.complete.
  • Task error checks task.error.
  • Resource limit checks resource.limit.

Release builds can also publish a Linux PingIslandBridge artifact alongside the macOS app packages, which Ping Island uses when bootstrapping remote SSH hosts that are not running macOS.

Sound packs can use .wav, .mp3, or .ogg files. If a selected pack does not provide a matching category for an event, Ping Island falls back to the macOS system sound selected for that event.

How It Works

Claude / Codex / Gemini CLI / Antigravity CLI / Hermes Agent / Pi Agent / Qwen Code / Kimi CLI / OpenCode / Cursor / Qoder / Qoder CN / CodeBuddy / WorkBuddy / Copilot / ...
  -> hook or app-server event
    -> Ping Island monitor + normalization layer
      -> SessionStore
        -> SessionMonitor / NotchViewModel
          -> notch, list, hover preview, completion popup

Implementation details worth knowing:

  • Claude-family tools enter through managed hook files plus the embedded PingIslandBridge launcher.
  • Codex sessions can come from hook events or the live codex app-server websocket monitor.
  • Gemini CLI hooks are installed into ~/.gemini/settings.json; tool matchers use Gemini's regex-based hook matcher syntax.
  • Antigravity CLI uses a generated native plugin under ~/.gemini/antigravity-cli/plugins/ping-island/; Ping Island returns ask from its observational PreToolUse hook so Antigravity's own permission engine remains authoritative.
  • Pi Agent is wired through a generated TypeScript extension under ~/.pi/agent/extensions/ping_island/ and forwards events through the Claude-compatible bridge with Pi-specific client metadata.
  • Qwen Code hooks are installed into ~/.qwen/settings.json; the bridge follows the official event names and uses Stop / SessionEnd / Notification messages to surface popup-ready summaries in Island.
  • Kimi CLI hooks are installed into ~/.kimi/config.toml; Ping Island preserves unrelated TOML content and maps Kimi Stop to turn completion while SessionEnd closes the session.
  • OpenCode is wired through a generated plugin file under ~/.config/opencode/plugins/ and enabled from the documented global config at ~/.config/opencode/opencode.json; legacy config.json entries are still recognized for cleanup.
  • Remote SSH hosts can bootstrap PingIslandBridge, rewrite remote Claude-compatible hooks to target that bridge, and forward remote events back into the local Ping Island UI.
  • Focus routing spans iTerm2, Ghostty, Terminal.app, tmux, and VS Code-compatible IDE extensions.

Requirements

  • macOS 14.0 or later
  • Best experience on MacBooks with a notch, but external displays are supported too
  • Install whichever CLI or desktop clients you want Ping Island to monitor

Contributors

Thanks to everyone who has helped shape Ping Island through code, issues, ideas, testing, docs, design feedback, and release validation.

See the full contributor history on the GitHub contributors graph.

Acknowledgments

Ping Island follows the lineage of notch-first agent monitors such as claude-island, and adapts that idea into a broader multi-client session surface with hooks, app-server sync, and IDE routing.

License

Apache 2.0 - see LICENSE.md.

常见问题

What is ping-island?

ping-island is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by erha19. A Dynamic Island-style command center for managing all your AI coding agents on macOS. It has 1,068 GitHub stars.

Is ping-island safe to use?

Yes. ping-island passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install ping-island?

Clone the repository with "git clone https://github.com/erha19/ping-island" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is ping-island written in?

ping-island is primarily written in Swift. It is open-source under erha19 on GitHub, so you can review or fork the full source.

Are there alternatives to ping-island?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh ping-island against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI 智能体
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情