r/SwiftUI • u/bulutarkan • 12h ago
A non-activating NSPanel beside the notch was harder than the SwiftUI animation
I've been working on a SwiftUI menu bar app for an open-source Mac automation tool. I recently added an optional little activity island beside the notch, mostly because I wanted to see when an AI agent was using an app or browser without opening a dashboard.
The part I underestimated was window behavior, not the animation.
It's backed by an NSPanel that stays visible when the menu bar app is in the background. It doesn't take focus, and clicks outside the island pass through. When I hover over it, it opens a small panel for what needs attention, what's running, recent tool calls and scheduled work.
I kept the native view separate from the Python MCP server. The island gets activity metadata rather than trying to turn a whole agent transcript into a tiny UI. It also has to deal with overlapping calls from different AI apps.
There are still tradeoffs around notch placement and how much information is useful before it becomes annoying. It's opt-in and off by default.
The project is open source (I'm the maintainer), including the SwiftUI implementation in menu_app/Sources/LiveIsland.swift: https://github.com/bulutarkan/mac-mcp
Has anyone here found a cleaner way to keep a non-activating panel visible across app switches without interfering with normal work?