📚 Research Hub
Iran-US War
War Scenarios (48) Western Views Hormuz Closure Iran Assessment
Tech
Vibe Island Perch Spec Drone Guide
Society
Life Trajectories

Vibe IslandApp Decomposition

Full feature breakdown, architecture deep-dive, and Mac build specification for cloning the AI agent notch app.

6 agents · 13+ terminals · 100% native Swift · $19.99

Overview

What Vibe Island does and why it matters.

6
AI Agents
13+
Terminals
50MB
RAM Usage
$19.99
Price
The Problem
When running AI coding agents (Claude Code, Codex CLI, Gemini CLI), developers constantly context-switch to the terminal to check status, approve permissions, and review output. Vibe Island surfaces everything in the notch.
🤖 Supported AI Agents
  • Claude Code (Anthropic)
  • Codex CLI (OpenAI)
  • Gemini CLI (Google)
  • Cursor Agent
  • OpenCode
  • Factory Droid
💻 Supported Terminals
  • iTerm2 (incl. tmux -CC)
  • Ghostty 1.3+
  • Terminal.app
  • Warp, Alacritty, Kitty
  • VS Code, Cursor, Windsurf
  • + 4 more via VSIX extension
🔒 Privacy Model
  • 100% local — Unix socket IPC only
  • No data sent to any server
  • No account required
  • No cloud dependency

Feature Decomposition

Every feature, organized by category.

Core Agent Monitoring & Control
Multi-agent monitoringUnified notch panel for all 6 agents simultaneously
GUI permission approvalAllow/Deny buttons in notch for tool execution requests
Interactive Q&AOne-click responses to AskUserQuestion prompts from the notch
Plan reviewMarkdown rendering of agent plans with feedback capability
Terminal jumpingNavigate to correct terminal window/tab/pane across 13+ apps
Split pane + tmuxJumps to correct pane within splits and tmux sessions
UI/UX Window & Display
Non-activating overlayNSPanel that never steals focus from your editor
Notch-native placementSits in the MacBook notch on supported hardware
Floating bar fallbackCompact bar for external monitors and non-notch Macs
Contextual expansionPanel expands to show details, collapses when idle
Multi-session displayAll active agent sessions visible in one panel
Audio Sound Alerts
8-bit synthesized soundsRetro chiptune-style notifications for agent events
Custom sound packsConfigurable alert sounds per event type
Setup Configuration
Zero-config auto-setupAuto-writes hook entries into each tool's config on first launch
Bundled VSIX extensionFor IDE terminal integration (VS Code, Cursor, Windsurf)
Per-agent configurationIndividual hook setup per tool

Technical Architecture

What's under the hood — 100% native Swift, zero cloud.

Event Flow
AI Agent → Hook Script → Unix Socket → Bridge Binary → Event Parser → State Machine → UI Update
🔨 Language & Framework
  • Swift100% native (not Electron/Tauri)
  • AppKitNSPanel subclass for overlay
  • SwiftUIViews hosted via NSHostingView
  • Apple Silicon optimized
  • macOS 14+ (Sonoma) target
  • ~50MB RAM, near-zero CPU idle
🔌 Communication
  • Unix domain socketPrimary IPC channel
  • Bridge binaryLightweight CLI for hook-to-app comms
  • JSON payloadsTyped event messages
  • Shell hooksInstalled into each tool's config dir
🎨 Window System
  • NSPanel + .nonactivatingPanel style
  • Floating window levelStays above other windows
  • Notch geometry detection — CGDisplayBounds API
  • Core AnimationExpand/collapse transitions
💻 Terminal Navigation
  • AppleScript/JXA — iTerm2, Terminal.app
  • Accessibility APIFor supported apps
  • VSIX extension — VS Code, Cursor, Windsurf
  • App-specific IPC — Ghostty, Kitty, Warp
🔊 Audio Engine
  • AVAudioEngine or AudioToolbox
  • 8-bit synthesized chiptune sounds
  • Low-latency runtime generation
💲 Business Stack
  • Lemon SqueezyPayment/licensing
  • PostHogAnalytics (website only)
  • Local license key storage
  • No user accounts needed

Hook Config Locations

AgentConfig FileHook Format
Claude Code~/.claude/settings.jsonhooks config
Codex CLIconfig.toml + hooks.jsonTOML + JSON
Gemini CLIsettings.jsonJSON hooks
Cursorhooks.jsonJSON hooks

Mac Build Specification

What you need to build this from scratch.

Why Native Swift?
Every app in this space uses native Swift. NSPanel's .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.

Components to Build

ComponentTechnologyComplexity
Notch overlay windowNSPanel + SwiftUI via NSHostingViewMedium
Unix socket serverFoundation CFSocket or Swift NIOMedium
Bridge binarySmall Swift CLI for hook IPCLow-Med
Hook installerFS writes to tool config dirsLow
Event parserJSON Codable decodingLow
State machinePer-session state trackingMedium
Permission UISwiftUI Allow/Deny + expandable panelMedium
Markdown rendererswift-markdown or AttributedStringMedium
Terminal jumperAppleScript + Accessibility API + VSIXHigh
Audio synthesizerAVAudioEngine for 8-bit soundsMedium
Notch geometryCGDisplayBounds + notch detectionLow-Med
License validationLemon Squeezy API or similarLow
Multi-session mgmtSession registry + lifecycleMedium

Key Technical Challenges

Terminal Jumping (Hardest)
13+ terminal apps, each with different automation APIs. iTerm2 has great AppleScript; Ghostty uses its own IPC; Kitty has kitten @; Warp has limited automation. Split pane + tmux detection adds massive complexity. Estimated 2-3 weeks alone.
Non-Activating Overlay
NSPanel with .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.
Hook Compatibility
6 AI tools, each with different config formats (JSON, TOML). Maintaining compatibility as tools update their APIs is ongoing work. Auto-installer must handle edge cases (missing dirs, conflicting configs).
Notch Positioning
Detecting notch area, handling multiple displays (some with notch, some without), external monitor fallback, and display configuration changes requires display monitoring.

Required Assets

AssetDescriptionSource
Sound effects8-bit chiptune alerts (or runtime synthesis)Create or license
App iconmacOS icon (1024x1024 + sizes)Design
FontsJetBrains Mono, system monospaceFree / bundled
VSIX extensionVS Code extension for IDE terminal integrationBuild (TypeScript)

Development Environment

🛠 Required Tools
  • Xcode 15+Swift compiler, Interface Builder
  • macOS 14+ SDK — Sonoma APIs
  • Apple Developer accountFor signing & notarization
  • Swift Package ManagerDependency management
📦 Key Dependencies
  • Swift NIOUnix socket server
  • swift-markdownPlan rendering
  • DynamicNotchKitNotch UI helper (open source)
  • AudioToolboxSound synthesis (system framework)

Effort Estimate

Solo developer, full-time. Three phases from MVP to full feature parity.

Phase 1 — MVP 2-3 weeks

Scope: Single agent (Claude Code) monitoring + notch overlay

  • Unix socket server
  • Hook installer for Claude Code only
  • Basic notch panel with status display
  • Permission approval (Allow/Deny)
Effort25%
Phase 2 — V1 4-6 weeks

Scope: 3 agents + permission UI + terminal jump for 3 terminals

  • Add Codex CLI + Gemini CLI support
  • Interactive Q&A from notch
  • Markdown plan review
  • AppleScript terminal jumping (iTerm2, Terminal.app, Ghostty)
  • Floating bar fallback for non-notch displays
Effort55%
Phase 3 — Full Parity 8-12 weeks

Scope: Full feature parity with Vibe Island

  • All 6 agents
  • 13+ terminal app support (incl. tmux, split panes)
  • VSIX extension for IDE terminals
  • 8-bit audio synthesizer + custom sound packs
  • License validation (Lemon Squeezy)
  • Polish, edge cases, multi-display handling
Effort100%
Biggest Time Sink
The terminal jumping system alone (13+ apps, each with different automation APIs, plus tmux and split pane detection) accounts for ~30% of the total effort. Consider shipping with 3-4 terminal support initially.

Competitors & Alternatives

The landscape of AI agent notch apps and related tools.

Direct Competitors (AI Agent Notch Apps)

AppPriceAgentsOpen SourceKey Differentiator
Vibe Island$19.996NoTwo-way interaction, 13+ terminals, audio
Claude IslandFree1MITAuto-setup, chat history, markdown
NotchiFree1MITAnimated sprites, sentiment analysis
AgentNotchFree2MITOpenTelemetry-based, token/cost tracking
NotchyFree1YesEmbedded terminal in notch
ClaudeBarFree3YesUsage quota monitoring (menu bar)

General Mac Notch/Dynamic Island Apps

AppWhat It DoesOpen Source
NotchNookGeneral Dynamic Island — media, calendar, widgetsNo
TheBoringNotchMusic controls + visualizer in notchYes
DynamicLakeDynamic Island notifications for MacNo
AlcoveMedia, calendar, files in the notchNo
NotchDropFile drop zone in the notchYes

Open Source Starting Points

Build Faster — Fork These
Claude Island (MIT) — Best starting point for the core notch UI + hook system. Already has NSPanel, Unix socket, and Claude Code hooks.
AgentNotch (MIT) — Has multi-agent support (Claude + Codex) and token tracking.
DynamicNotchKit (MIT) — Reusable SwiftUI library for notch-area UI components.
Notchi (MIT) — Has animated sprites and personality features if you want visual flair.
Architectural Pattern (All Apps Share This)
Language: 100% Swift
IPC: Unix domain socket (JSON payloads)
Hooks: Shell scripts in tool config dirs
Window: NSPanel + .nonactivatingPanel
Privacy: All local, no cloud

The paid app (Vibe Island) differentiates on breadth: 6 agents vs 1-2, 13+ terminals vs 1-3, two-way interaction vs read-only.