Full feature breakdown, architecture deep-dive, and Mac build specification for cloning the AI agent notch app.
What Vibe Island does and why it matters.
Every feature, organized by category.
What's under the hood — 100% native Swift, zero cloud.
.nonactivatingPanel style| Agent | Config File | Hook Format |
|---|---|---|
| Claude Code | ~/.claude/settings.json | hooks config |
| Codex CLI | config.toml + hooks.json | TOML + JSON |
| Gemini CLI | settings.json | JSON hooks |
| Cursor | hooks.json | JSON hooks |
What you need to build this from scratch.
.nonactivatingPanel is essential, notch detection needs native APIs, Accessibility API requires entitlements, and 50MB RAM rules out Electron (200MB+). Cross-platform frameworks cannot do this.| Component | Technology | Complexity |
|---|---|---|
| Notch overlay window | NSPanel + SwiftUI via NSHostingView | Medium |
| Unix socket server | Foundation CFSocket or Swift NIO | Medium |
| Bridge binary | Small Swift CLI for hook IPC | Low-Med |
| Hook installer | FS writes to tool config dirs | Low |
| Event parser | JSON Codable decoding | Low |
| State machine | Per-session state tracking | Medium |
| Permission UI | SwiftUI Allow/Deny + expandable panel | Medium |
| Markdown renderer | swift-markdown or AttributedString | Medium |
| Terminal jumper | AppleScript + Accessibility API + VSIX | High |
| Audio synthesizer | AVAudioEngine for 8-bit sounds | Medium |
| Notch geometry | CGDisplayBounds + notch detection | Low-Med |
| License validation | Lemon Squeezy API or similar | Low |
| Multi-session mgmt | Session registry + lifecycle | Medium |
kitten @; Warp has limited automation. Split pane + tmux detection adds massive complexity. Estimated 2-3 weeks alone..nonactivatingPanel sounds simple but handling click-through, proper z-ordering, and focus behavior across spaces/desktops requires careful tuning. Two-way interaction without focus steal is the core UX challenge.| Asset | Description | Source |
|---|---|---|
| Sound effects | 8-bit chiptune alerts (or runtime synthesis) | Create or license |
| App icon | macOS icon (1024x1024 + sizes) | Design |
| Fonts | JetBrains Mono, system monospace | Free / bundled |
| VSIX extension | VS Code extension for IDE terminal integration | Build (TypeScript) |
Solo developer, full-time. Three phases from MVP to full feature parity.
Scope: Single agent (Claude Code) monitoring + notch overlay
Scope: 3 agents + permission UI + terminal jump for 3 terminals
Scope: Full feature parity with Vibe Island
The landscape of AI agent notch apps and related tools.
| App | Price | Agents | Open Source | Key Differentiator |
|---|---|---|---|---|
| Vibe Island | $19.99 | 6 | No | Two-way interaction, 13+ terminals, audio |
| Claude Island | Free | 1 | MIT | Auto-setup, chat history, markdown |
| Notchi | Free | 1 | MIT | Animated sprites, sentiment analysis |
| AgentNotch | Free | 2 | MIT | OpenTelemetry-based, token/cost tracking |
| Notchy | Free | 1 | Yes | Embedded terminal in notch |
| ClaudeBar | Free | 3 | Yes | Usage quota monitoring (menu bar) |
| App | What It Does | Open Source |
|---|---|---|
| NotchNook | General Dynamic Island — media, calendar, widgets | No |
| TheBoringNotch | Music controls + visualizer in notch | Yes |
| DynamicLake | Dynamic Island notifications for Mac | No |
| Alcove | Media, calendar, files in the notch | No |
| NotchDrop | File drop zone in the notch | Yes |