A Raycast extension that lets you save and apply macOS appearance profiles — wallpaper, icon style, and dark mode — all at once.
I switch between a dark setup at night and a light one during the day. Changing all three settings manually every time got old fast, so I built this to do it in one step.
A profile is a combination of:
Create a few profiles, then apply whichever one you want from Raycast. That's it.
| Command | Description |
|---|---|
| Apply Profile | Browse your profiles in a grid with thumbnail previews and apply one |
| Create Profile | Build a new profile or edit an existing one |
| Toggle Profiles | Instantly switch between two profiles with a single hotkey (no UI) |
| Configure Toggle Pair | Pick which two profiles the toggle command switches between |



The TypeScript side handles the UI and profile storage through Raycast's API. The actual system changes happen in Swift — modifying macOS preferences, patching the wallpaper plist, and restarting the relevant processes (Dock, WallpaperAgent) so changes take effect immediately.
Thumbnail previews are composited in Swift as well: each profile gets a generated preview that combines the wallpaper with an icon style overlay, cached by content hash so they only regenerate when something changes.
Search for macOS Appearance Changer in the Raycast Store.
git clone https://github.com/neo773/macos-appearance-changer.git
cd macos-appearance-changer
npm install
npm run dev
Requires macOS 26+ and Swift 5.9+.
MIT