How farouqaldori/claude-island works
Vibe Notch is a macOS menu-bar app that monitors Claude Code sessions and presents their activity in a Dynamic Island-style notch. Claude Code hooks send events over a Unix socket; the app tracks session state and parses conversation files, then displays sessions and chat history. Users can approve or reject tool requests from the notch, with tmux operations carrying those actions to the terminal. The map follows documented wiring and SOURCE INDEX references; several UI and integration details are unsampled, so uncertain links are omitted.
Main entry points: NotchView.swift Notch interface · SessionStore.swift Session store · AppDelegate.swift App lifecycle · ChatView.swift Chat history UI
Components 24
App and Setup
- App lifecycle
ClaudeIsland/App/AppDelegate.swift - Hook setup
ClaudeIsland/Services/Hooks/HookInstaller.swift
Session Monitoring
- Hook event sender
ClaudeIsland/Resources/claude-island-state.py - Hook socket
ClaudeIsland/Services/Hooks/HookSocketServer.swift - Session monitor
ClaudeIsland/Services/Session/ClaudeSessionMonitor.swift - Conversation parser
ClaudeIsland/Services/Session/ConversationParser.swift - Session file watchers
ClaudeIsland/Services/Session
Notch Experience
- Notch view model
ClaudeIsland/Core/NotchViewModel.swift - Notch window
ClaudeIsland/UI/Window/NotchWindowController.swift - Notch interface
ClaudeIsland/UI/Views/NotchView.swift - Chat history UI
ClaudeIsland/UI/Views/ChatView.swift - Markdown renderer
ClaudeIsland/UI/Components/MarkdownRenderer.swift - Session list
ClaudeIsland/UI/Views/ClaudeInstancesView.swift - Approval controls
ClaudeIsland/UI/Views/ChatView.swift
Terminal Actions
- Tmux controller
ClaudeIsland/Services/Tmux/TmuxController.swift - Tool approval handler
ClaudeIsland/Services/Tmux/ToolApprovalHandler.swift - Process executor
ClaudeIsland/Services/Shared/ProcessExecutor.swift
Session Data
- Session store
ClaudeIsland/Services/State/SessionStore.swift - Session state
ClaudeIsland/Models/SessionState.swift - Session phases
ClaudeIsland/Models/SessionPhase.swift - Chat history manager
ClaudeIsland/Services/Chat/ChatHistoryManager.swift
Other components
- Mac user
- Claude Code CLI
- Mixpanel
Connections 26
- Mac user → App lifecycle: launches
README.md - App lifecycle → Hook setup: installs hooks
ClaudeIsland/App/AppDelegate.swift - Hook setup → Hook event sender: configures hooks
- Claude Code CLI → Hook event sender: emits events
README.md - Hook event sender → Hook socket: sends events
README.md - Hook socket → Session monitor: delivers events
ClaudeIsland/Services/Session/ClaudeSessionMonitor.swift - Session monitor → Session store: updates sessions
ClaudeIsland/Services/Session/ClaudeSessionMonitor.swift - Session file watchers → Session store: syncs session files
ClaudeIsland/Services/Session/ClaudeSessionMonitor.swift - Session store → Conversation parser: loads conversation data
ClaudeIsland/Services/State/SessionStore.swift - Session store → Session state: maintains state
ClaudeIsland/Services/State/SessionStore.swift - Session state → Session phases: tracks lifecycle
ClaudeIsland/Models/SessionState.swift - Mac user → Notch interface: uses overlay
README.md - Notch window → Notch view model: creates model
ClaudeIsland/UI/Window/NotchWindowController.swift - Notch interface → Notch view model: uses view model
ClaudeIsland/UI/Views/NotchView.swift - Notch interface → Session monitor: observes sessions
ClaudeIsland/UI/Views/NotchView.swift - Notch interface → Session list: shows session list
ClaudeIsland/UI/Views/NotchView.swift - Notch interface → Chat history UI: shows chat
ClaudeIsland/UI/Views/NotchView.swift - Chat history UI → Chat history manager: loads history
ClaudeIsland/UI/Views/ChatView.swift - Chat history manager → Session store: dispatches history events
ClaudeIsland/Services/Chat/ChatHistoryManager.swift - Chat history manager → Conversation parser: parses conversation
ClaudeIsland/Services/Chat/ChatHistoryManager.swift - Chat history UI → Markdown renderer: renders markdown
- Mac user → Approval controls: approves or rejects
README.md - Approval controls → Tmux controller: dispatches approval
ClaudeIsland/UI/Views/ChatView.swift - Tmux controller → Tool approval handler: delegates approval
ClaudeIsland/Services/Tmux/TmuxController.swift - Tool approval handler → Process executor: runs tmux commands
ClaudeIsland/Services/Tmux/ToolApprovalHandler.swift - App lifecycle → Mixpanel: records launch