DynamicNotch: turning a MacBook notch into a live system surface
Turn the MacBook notch into a living system surface.
At a glance
- What is it?
- DynamicNotch is a native macOS app for notched MacBooks that fills the notch with Now Playing, downloads, AirDrop, timers and system status, reproducing the motion design of the iPhone Dynamic Island with its own engine. It is a GPL-3.0 project distributed as a DMG, and it needs macOS 14.6 or later.
- Who is it for?
- Adopt DynamicNotch if you own a notched MacBook and want media controls, download progress and system status in the notch instead of the menu bar, and you are willing to grant accessibility and screen recording permissions. Skip it if you dislike overlay apps, if you need only a Now Playing controller, since macOS already has that, or if you are on a Mac without a notch and do not want a floating capsule instead.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The notch becomes a second status surface
DynamicNotch is a native macOS app for notched MacBooks that turns the notch into a live system surface for media, downloads, AirDrop, timers, screen recording, connectivity events, lock-screen transitions and custom hardware HUDs. The pitch is a hardware one rather than a software one. A notch is a piece of screen that most applications leave black, so a program that treats it as a display surface gains a place to show information that would otherwise sit in a menu bar, a notification banner or nowhere at all. The design goal is stated as making the project as native as possible in both design and interaction, and the reason the README gives is the framework. The app is built with SwiftUI and AppKit, so the notch window, the settings UI and the event handling are meant to feel like part of macOS rather than a web-style overlay. The homepage is hosted on a workers.dev address, and the app is distributed as a DMG from the GitHub releases page rather than through the Mac App Store, which is consistent with an app that needs accessibility permissions and runs a persistent window over other applications.
Its own engine, not a port of an existing one
The README is explicit on the point that distinguishes it from similar projects. The difference between this project and others is that it is built on its own engine, and not taken from other ready-made repositories, and it completely copies the logic, animations and behavior of a real Dynamic Island on an iPhone, unlike other projects. That is a claim about provenance and about engineering effort. A Dynamic Island implementation is a motion design problem, and copying the motion is most of the work, so a project that borrows an existing implementation inherits its assumptions about timing, easing and interaction, and a project that builds its own can tune the behaviour to a desktop. The feature list names what the engine produces. There are responsive physics-based spring animations, jelly-like morphing transitions, and synchronized content interpolation that matches the stretch, squash and elastic behavior of Apple's implementation. The gestures are described as native and interactive, covering mouse drag, trackpad swipes, vertical swipe-to-dismiss and restore with adaptive corner radii and swipe-aware blur, and horizontal trackpad or mouse scroll-to-dismiss. The release tags reinforce the point that this is an active animation project rather than a static utility, with v1.6.3 titled as an Apple-style Dynamic Island and other work.
What it actually displays, from live activities to HUD alerts
The Highlights section splits the behaviour into two families and the split is a useful mental model for the app. The live activities are the long-lived surfaces: Now Playing with media control, album artwork, an audio visualizer and a customizable progress bar tint style, downloads progress, AirDrop, a timer, a screen recording indicator, focus mode, personal hotspot status, and lock screen media and live activity surfaces. The temporary alerts are the transient ones, an interactive HUD status for battery charging, low and full battery, Bluetooth connections, Wi-Fi, VPN, focus-off toggling, and feedback when you change the notch size settings. A third area is gestures and swipe controls as described above. The point of grouping them this way is that a live activity is something you interact with and that occupies the notch, while an alert is an event that expands and collapses. The v1.6.2 release added universal notifications, messages and mail support along with 25 or more languages, and v1.6.1 added AirDrop live activity, screenshot OCR and calendar handling, so the surface has been filling up steadily rather than arriving finished.
It runs on machines with no notch at all
The Dynamic Island feature is what makes the app usable on hardware it was not designed for. Automatic support is provided for devices without a physical hardware notch, with the examples given being non-notched MacBooks, an iMac, a Mac mini and external monitors. When topInset equals 0, the app transitions to a floating capsule shape, named DynamicIslandShape, using dynamic, smooth corner radius transitions. The mechanism is straightforward in principle, since the notch geometry is what a window can be shaped around, and on a display with no inset the same window has to become a floating element instead, and the difference between those two states is a corner radius and a position. The requirement list confirms the app works on both notched MacBooks and non-notched displays, automatically rendering as a floating Dynamic Island capsule. It is worth being clear that this makes DynamicNotch usable on an iMac or a Mac mini even though the name suggests otherwise, and it is also the reason the app can be tried by anyone with a Mac rather than only by owners of recent MacBook Pro hardware.
Installing it, and the permissions it asks for
Installation is a manual sequence, and the README writes it as five steps. Download the latest DMG from the Releases page. Drag DynamicNotch into Applications. Launch the app. Grant the permissions needed for the features you want to use. And if macOS blocks the first launch, allow it from System Settings, Privacy and Security. The requirements are macOS 14.6 or later, and a set of feature-specific permissions that are listed individually because they are not all needed. Accessibility access is for custom HUD interception and some system-level interactions, Bluetooth access is for accessory status updates, Screen Recording access is for the audio-reactive Now Playing visualisation where macOS requires it, and Media or Now Playing access is needed where macOS requires it. That last Screen Recording item is the one to think about before installing, since screen recording permission is a broad grant and it is requested only so the visualiser can react to audio. The permissions are granted per feature, so restricting the app to the features you actually use limits the blast radius. The system also uses a tray icon, and there is a gallery of screenshots covering the no-internet state, the tray, the timer, charging, low and full battery, Bluetooth, VPN, the volume HUD, the hotspot and downloads.
Building from Xcode and the release machinery around it
The source build is a three line sequence, and the project resolves its own dependencies.
git clone https://github.com/jackson-storm/DynamicNotch.git
cd DynamicNotch
open DynamicNotch.xcodeprojYou then run the DynamicNotch scheme from Xcode, and Swift Package Manager dependencies are resolved by the project. The repository layout is what you would expect for a macOS app with a real test effort. There is a DynamicNotch.xcodeproj directory, the app target itself under DynamicNotch/, a DynamicNotchTests directory and a DynamicNotchUITests directory, so there are both unit and user interface test targets. The assets directory holds the readme screenshots. The build and packaging scripts are visible as build_and_install_app.sh and build_dmg.sh, which tells you the DMG distribution is scripted rather than manual. There is also an appcast.xml at the top level, which is the Sparkle appcast format, so the app can check for updates outside the App Store, consistent with the DMG distribution model. The remaining files are the usual project furniture, with a CODE_OF_CONDUCT.md, a CONTRIBUTING.md, a SECURITY.md and a .github directory. The primary language is Swift, and the project is licensed GPL-3.0.
Where DynamicNotch is the wrong choice
There are honest reasons to leave it out. The first is that the value depends entirely on having a notch, and even the floating capsule fallback is a novelty rather than a necessity, so on an iMac the app is a floating widget that competes with the menu bar for the same information. The second is permission fatigue: an app that wants accessibility access to intercept system HUDs, screen recording access for an audio visualiser and Bluetooth access for accessory status is a significant grant, and some of those features are things a user will never touch. The third is that a native overlay in the notch duplicates a function macOS already provides in a more integrated way, since the real Now Playing controls in the Control Center and the menu bar are part of the system and behave consistently with everything else, while an app-drawn surface is a separate copy that can drift out of sync. The fourth is the rate of change. The release history shows v1.6.1 in August 2026, v1.6.2 in September and v1.6.3 in October, with a new feature set in each, so the app is evolving quickly and the interface will change under you. The last push to the repository was on 2026-10-22, so the work is current, and the project also points to a Telegram channel and a support page for its author, who runs it as a public-facing product rather than a research artifact.
Editorial conclusion
Adopt DynamicNotch if you own a notched MacBook and want media controls, download progress and system status in the notch instead of the menu bar, and you are willing to grant accessibility and screen recording permissions. Skip it if you dislike overlay apps, if you need only a Now Playing controller, since macOS already has that, or if you are on a Mac without a notch and do not want a floating capsule instead. Verify first that you are on macOS 14.6 or later, that you accept the permission set the features require, and that the build you install matches the current release, since the app is moving quickly between versions.
Frequently asked questions
What are the system requirements for DynamicNotch?
The app requires macOS 14.6 or later. It works on notched MacBooks and on non-notched displays, where it renders as a floating Dynamic Island capsule, and it asks for feature-specific permissions such as accessibility for HUD interception, Bluetooth for accessory status, screen recording for the audio-reactive Now Playing visualisation and media access where macOS requires it.
How do I install DynamicNotch on my Mac?
Download the latest DMG from the GitHub releases page, drag DynamicNotch into Applications and launch it, then grant the permissions for the features you want. If macOS blocks the first launch, allow it from System Settings under Privacy and Security.
Does DynamicNotch work on a Mac without a notch?
Yes. The app provides automatic support for devices without a physical hardware notch, such as non-notched MacBooks, an iMac, a Mac mini or external monitors, transitioning to a floating capsule shape called DynamicIslandShape when topInset equals 0.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/jackson-storm-dynamicnotch)