{"id":49116988,"url":"https://github.com/gaozimeng0425/nemonotch","last_synced_at":"2026-06-02T05:00:53.235Z","repository":{"id":352551613,"uuid":"1214188776","full_name":"GaoZimeng0425/NemoNotch","owner":"GaoZimeng0425","description":"An interactive floating panel for the MacBook notch area, turning the notch into a multi-purpose information hub.","archived":false,"fork":false,"pushed_at":"2026-05-27T08:23:43.000Z","size":3610,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T10:16:07.009Z","etag":null,"topics":["claude-code","gemini-cli","macos","notch","openclaw","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GaoZimeng0425.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-18T08:26:24.000Z","updated_at":"2026-05-27T08:22:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GaoZimeng0425/NemoNotch","commit_stats":null,"previous_names":["gaozimeng0425/nemonotch"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/GaoZimeng0425/NemoNotch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaoZimeng0425%2FNemoNotch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaoZimeng0425%2FNemoNotch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaoZimeng0425%2FNemoNotch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaoZimeng0425%2FNemoNotch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GaoZimeng0425","download_url":"https://codeload.github.com/GaoZimeng0425/NemoNotch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaoZimeng0425%2FNemoNotch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33806987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","gemini-cli","macos","notch","openclaw","swiftui"],"created_at":"2026-04-21T08:03:42.959Z","updated_at":"2026-06-02T05:00:53.226Z","avatar_url":"https://github.com/GaoZimeng0425.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NemoNotch\n\nAn interactive floating panel for the MacBook notch area, turning the notch into a multi-purpose information hub.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/tab-overview.png\" alt=\"Overview — media, calendar \u0026 weather\" width=\"720\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/tab-claude.png\" alt=\"AI Chat\" width=\"380\"\u003e\n  \u003cimg src=\"docs/images/tab-agents.png\" alt=\"Agents\" width=\"380\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/tab-pomodoro.png\" alt=\"Pomodoro\" width=\"380\"\u003e\n  \u003cimg src=\"docs/images/tab-system.png\" alt=\"System\" width=\"380\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/tab-launcher.png\" alt=\"Launcher\" width=\"380\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README_CN.md\"\u003e中文文档\u003c/a\u003e\n\u003c/p\u003e\n\n## Features\n\n### 6 Functional Tabs\n\n| Tab | Description |\n|-----|-------------|\n| **Overview** | Three glanceable panels in one tab — **Media**: real-time playback controls (play/pause/next/previous), album artwork, progress bar (Spotify \u0026 Apple Music); **Calendar**: 15-day date picker, daily event list, color-coded calendars, clickable meeting URLs; **Weather**: current temperature / feels-like, high/low, humidity \u0026 wind, 3-hour hourly forecast |\n| **AI Chat** | Unified Claude Code \u0026 Gemini CLI monitoring — session list, conversation details, permission approval, context usage bar, subagent tracking, model display |\n| **Agents** | Multi-agent status monitoring for OpenClaw (WebSocket) and Hermes-agent (HTTP API), real-time agent state tracking |\n| **Launcher** | App icon grid, search filter, quick-launch custom app list |\n| **Pomodoro** | Classic 25/5/15 cycle with persistent TODO list, per-task completed-pomodoro counts, hotkey-summoned centered QuickStart panel, end-of-phase sound + system notification, collapsed-notch 🍅 + remaining-time pie |\n| **System** | Top 5 process resource ranking (CPU \u0026 memory), app icons, system summary footer (CPU / RAM / battery / network) |\n\n### Highlights\n\n- **Notch Floating Panel** — Hovers over the notch area, auto-detects notch size\n- **Multi-AI Provider** — Unified interface for Claude Code and Gemini CLI with hook event listening, session tracking, and permission interception\n- **Global Shortcuts** — Toggle panel: configure your own in Settings → Hotkeys (no default). Tab switches default to `⌥⌘1-5`. All bindings are user-customizable, powered by [KeyboardShortcuts](https://github.com/sindresorhus/KeyboardShortcuts)\n- **Smart Auto-Switch** — Automatically selects the active tab (AI working, music playing, etc.)\n- **Menu Bar Entry** — Fixed pixel-art notch icon (state is visible on the notch panel above the menubar); menu shows Now Playing controls (previous / play-pause / next) when media is active\n- **HUD Overlay** — Volume, brightness, and battery level indicators with segmented bars\n- **i18n** — Supports English and Simplified Chinese, switchable in Settings\n- **Explicit permission requests.** NemoNotch does not auto-request permissions on launch. Each feature surfaces a \"Grant Access\" button (Calendar in the Overview tab, Location in the Weather card, Automation in the Media card when controlling Music/Spotify) — click to invoke the system dialog.\n- **ESC closes the notch.** Press ESC any time the notch is opened.\n\n## Tech Stack\n\n- **Swift 6** + **SwiftUI**, native macOS app\n- **AppKit** — Custom NSWindow, click-through, multi-screen positioning\n- **MediaPlayer / MediaRemote** — Media playback control\n- **EventKit** — Calendar event access\n- **IOKit** — System monitoring (CPU, memory, battery, disk)\n- **libproc** — Per-process resource tracking via kernel APIs\n- **CocoaLumberjack** — Logging (`~/.NemoNotch/logs/`, 7-day rotation)\n- **KeyboardShortcuts** — User-customizable global hotkeys (replaces Carbon `RegisterEventHotKey`)\n- **WebSocket / Unix Socket** — AI CLI Hooks \u0026 OpenClaw communication\n- **HTTP API** — Hermes-agent monitoring via localhost:8787\n\n## Project Structure\n\n```\nNemoNotch/\n├── NemoNotchApp.swift           # Entry point, MenuBarExtra, global hotkeys\n├── Models/                      # Data models (Tab, AppSettings, AIProvider, PlaybackState, etc.)\n├── Notch/                       # Notch UI core (window, animation, event handling, TabBar, HUD)\n├── Tabs/                        # Tab content views (AIChatTab for unified AI sessions)\n├── Services/                    # Background services (media, calendar, AI CLI monitor, launcher, etc.)\n├── Settings/                    # Preferences UI\n└── Helpers/                     # Utilities (MarkdownRenderer, ClaudeCrabIcon, ToolStyles)\n```\n\n## Build\n\n1. Open `NemoNotch.xcodeproj` in Xcode\n2. Select the `NemoNotch` target\n3. Build \u0026 Run (requires macOS 14+)\n\n\u003e **Note:** If macOS blocks the app on first launch, run the following command to remove the quarantine attribute:\n\u003e\n\u003e ```bash\n\u003e sudo xattr -d com.apple.quarantine /Applications/NemoNotch.app\n\u003e ```\n\n## Acknowledgements\n\nNemoNotch draws inspiration from the following open-source projects:\n\n### Notch Window \u0026 Interaction\n\n- [**NotchDrop**](https://github.com/Lakr233/NotchDrop) — Notch window positioning, multi-screen support, click-through\n- [**DynamicNotchKit**](https://github.com/MrKai77/DynamicNotchKit) — Spring animations, auto-dismiss, content switching\n- [**Peninsula**](https://github.com/celve/Peninsula) — Multi-view state management in the notch area\n\n### Media \u0026 Playback\n\n- [**PlayStatus**](https://github.com/nbolar/PlayStatus) — MediaRemote framework integration, media key interception\n- [**Tuneful**](https://github.com/martinfekete10/Tuneful) — Now playing info \u0026 UI\n- [**nowplaying-cli**](https://github.com/kirtan-shah/nowplaying-cli) — CLI tool for now playing info\n\n### Window Management \u0026 Shortcuts\n\n- [**Loop**](https://github.com/MrKai77/Loop) — Global hotkey registration, window operations\n- [**DSFQuickActionBar**](https://github.com/dagronf/DSFQuickActionBar) — Floating search bar component\n\n### Display \u0026 System Monitoring\n\n- [**MonitorControl**](https://github.com/MonitorControl/MonitorControl) — Display brightness reading via DisplayServices API\n\n### Menu Bar \u0026 System Tools\n\n- [**eul**](https://github.com/gao-sun/eul) — Menu bar architecture, Combine reactive patterns\n- [**menubar_runcat**](https://github.com/Kyome22/menubar_runcat) — Menu bar status animation\n\n### Launcher \u0026 UI Components\n\n- [**sol**](https://github.com/ospfranco/sol) — App launcher architecture\n- [**Luminare**](https://github.com/Lakr233/Luminare) — SwiftUI component library \u0026 design language\n\n### AI \u0026 Desktop Integration\n\n- [**Vibe Notch**](https://github.com/farouqaldori/vibe-notch) — Claude Code notch notifications, session monitoring, permission approval UI\n- [**masko-code**](https://github.com/RousselPaul/masko-code) — Claude Code status monitoring \u0026 desktop overlay concept\n\n### UI \u0026 Design\n\n- [**Notch Pilot**](https://notchpilot.app/) — Visual reference for the notch panel's layout, tab structure, and console-style header treatment\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaozimeng0425%2Fnemonotch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaozimeng0425%2Fnemonotch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaozimeng0425%2Fnemonotch/lists"}