API Reference
DynamicIsland.notifications
Send notifications from your extension to the island and macOS notification center.
DynamicIsland.notifications
Send notifications from your extension. Requires "notifications" in your manifest's permissions array.
notifications.send(options)
DynamicIsland.notifications.send({
title: "Pomodoro complete! 🍅",
body: "Time for a 5-minute break.",
sound: true,
});Options
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Notification title |
body | string | No | Notification body text |
sound | boolean | No | Play alert sound. Default: false |
id | string | No | Unique ID — use to replace a previous notification |
appName | string | No | Override the app name shown |
avatarURL | string | No | URL for a custom avatar/icon image |
Notification feed
If your manifest includes "notificationFeed": true in capabilities, notifications are also added to a persistent in-island feed viewable by the user.
{
"capabilities": ["compact", "expanded", "notificationFeed"]
}Examples
Timer completion
function onTimerComplete(isBreak) {
DynamicIsland.notifications.send({
id: "pomodoro-complete",
title: isBreak ? "Break time! 🌿" : "Focus time! 🎯",
body: isBreak ? "Take 5 minutes away from the screen." : "Start a 25-minute focus session.",
sound: true,
});
DynamicIsland.playFeedback("success");
}Status update with avatar
DynamicIsland.notifications.send({
title: "Deploy succeeded ✓",
body: "main → production in 1m 23s",
appName: "CI/CD",
avatarURL: "https://github.com/nullbytes00.png",
sound: false,
});Replace an existing notification
// First call — shows notification
DynamicIsland.notifications.send({ id: "build", title: "Build started..." });
// Later — replaces the same notification
DynamicIsland.notifications.send({ id: "build", title: "Build complete ✓" });