Extension SDK
settings.json
Declarative settings UI schema for extensions. Generates a native SwiftUI settings panel automatically.
settings.json
If your extension has user-configurable options, add a settings.json file. SuperIsland generates a native SwiftUI settings panel from this schema — no code needed.
Schema
{
"sections": [
{
"title": "Section Title",
"fields": [
{
"type": "toggle",
"key": "settingKey",
"label": "Display Label",
"default": true
}
]
}
]
}Field types
toggle
Boolean on/off switch.
{
"type": "toggle",
"key": "showSeconds",
"label": "Show seconds",
"default": true
}slider
Numeric value within a range.
{
"type": "slider",
"key": "volume",
"label": "Alert volume",
"default": 0.5,
"min": 0.0,
"max": 1.0,
"step": 0.1
}stepper
Integer increment/decrement.
{
"type": "stepper",
"key": "workMinutes",
"label": "Work duration (min)",
"default": 25,
"min": 1,
"max": 90,
"step": 5
}picker
Dropdown/segmented selector.
{
"type": "picker",
"key": "alertSound",
"label": "Alert sound",
"default": "bell",
"options": [
{ "value": "bell", "label": "Bell" },
{ "value": "chime", "label": "Chime" },
{ "value": "none", "label": "None" }
]
}text
Single-line text input.
{
"type": "text",
"key": "apiKey",
"label": "API Key",
"placeholder": "sk-...",
"default": ""
}color
Color picker.
{
"type": "color",
"key": "accentColor",
"label": "Accent color",
"default": "#a855f7"
}Reading settings in your extension
// Read a setting value
const workMinutes = DynamicIsland.settings.get("workMinutes") ?? 25;
// Update a setting programmatically
DynamicIsland.settings.set("workMinutes", 30);Full example — Pomodoro settings
{
"sections": [
{
"title": "Timer",
"fields": [
{
"type": "stepper",
"key": "workMinutes",
"label": "Work duration",
"default": 25,
"min": 1,
"max": 60,
"step": 5
},
{
"type": "stepper",
"key": "breakMinutes",
"label": "Break duration",
"default": 5,
"min": 1,
"max": 30,
"step": 1
}
]
},
{
"title": "Alerts",
"fields": [
{
"type": "toggle",
"key": "notifyOnComplete",
"label": "Notify when complete",
"default": true
},
{
"type": "picker",
"key": "alertSound",
"label": "Alert sound",
"default": "bell",
"options": [
{ "value": "bell", "label": "Bell" },
{ "value": "chime", "label": "Chime" },
{ "value": "none", "label": "None" }
]
}
]
}
]
}