Toggle Dark Mode
toggle_dark_modeSwitch macOS system appearance between dark mode and light mode with a single action.
Instructions
Toggle macOS appearance between dark mode and light mode.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| darkMode | Yes |
Implementation Reference
- src/system/scripts.ts:58-65 (handler)The core JXA script that toggles dark mode by reading the current dark mode state from System Events appearance preferences and toggling it.
export function toggleDarkModeScript(): string { return ` const se = Application('System Events'); const current = se.appearancePreferences.darkMode(); se.appearancePreferences.darkMode = !current; JSON.stringify({darkMode: !current}); `; } - src/system/tools.ts:173-196 (schema)The tool registration with input/output schema (no input, returns {darkMode: boolean}) and the handler that calls toggleDarkModeScript().
server.registerTool( "toggle_dark_mode", { title: "Toggle Dark Mode", description: "Toggle macOS appearance between dark mode and light mode.", inputSchema: {}, outputSchema: { darkMode: z.boolean(), }, annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false, }, }, async () => { try { return okStructured(await runJxa<{ darkMode: boolean }>(toggleDarkModeScript())); } catch (e) { return errJxaFor("toggle dark mode", e); } }, ); - src/system/tools.ts:173-196 (registration)Registration of the 'toggle_dark_mode' tool via server.registerTool() inside registerSystemTools().
server.registerTool( "toggle_dark_mode", { title: "Toggle Dark Mode", description: "Toggle macOS appearance between dark mode and light mode.", inputSchema: {}, outputSchema: { darkMode: z.boolean(), }, annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false, }, }, async () => { try { return okStructured(await runJxa<{ darkMode: boolean }>(toggleDarkModeScript())); } catch (e) { return errJxaFor("toggle dark mode", e); } }, ); - src/system/tools.ts:8-13 (helper)Import of toggleDarkModeScript helper from scripts.ts, which provides the JXA script string used by the handler.
import { getClipboardScript, setClipboardScript, getVolumeScript, setVolumeScript, toggleDarkModeScript, - docs/app.js:225-225 (helper)Documentation entry for the toggle_dark_mode tool in the docs site.
{ name: 'toggle_dark_mode', desc: 'Dark/light mode', type: 'write' },