How to Restore Your macOS Workspace Automatically (Apps, Windows, Browser Profiles)
Rebuilding your Mac setup after a restart, a monitor change, or a project switch takes ten to fifteen minutes if you count everything. Here is what macOS does natively, where it stops, and how to automate the rest.
Launching the right apps, opening the browser tabs you had, moving windows back to the right monitor and position, getting your browser profile onto the right project: multiply that by two or three switches a day and the annual cost is significant.
macOS has a partial answer built in. Knowing what it does, and where it stops, is the starting point for automating this properly.
What restore your workspace actually means
Before choosing tools, it's worth defining what needs to come back, because different tools solve different layers: apps launched (every app that was part of your working setup, reopened), window positions across monitors, browser tabs restored in the right window, the right browser profile per project (if you use separate Chrome, Brave, or Arc profiles for different clients), the macOS Focus Mode you were using, and any project-specific automation (source-my-shell-file, start-dev-server, mount-remote-drive). Tools that cover a subset of these are still useful. But if you want the full restore, you need something that covers all six.
What macOS gives you natively
macOS has a Reopen windows when logging back in checkbox on the shutdown/restart dialog. When enabled, macOS reopens the apps that were running at shutdown, and some apps independently offer to reopen the last window on launch. That handles apps launched (mostly) and some window positions (unreliably). It does not handle browser tabs in the right windows and profiles, Focus Mode, any custom automation, multi-monitor layout after display changes, or restoring a specific project state: it only restores whatever was open last, not a saved snapshot per project.
The native path is enough if you never switch contexts and only want to survive a reboot. For anything else, you'll need to layer additional tools.
The three tool categories
Per-app reopen-last: individual apps (Safari, Chrome, Terminal, some editors) have their own reopen-on-launch behavior, configured separately, fine for single-context work but it doesn't scale across projects. Window layout tools: apps like Moom, Stay, and Rectangle Pro can save window arrangements and restore them, but they do not launch missing apps, restore browser tabs, or handle Focus Mode. Workspace restore tools: tools like Ikuna and ShiftPlus treat the whole context as a saved unit. They launch missing apps, restore browser state (including per-workspace Chromium profiles in Ikuna's case), set Focus Mode, and handle multi-monitor layouts. For a full automatic restore that survives restart, you want the third category.
Setting up an automatic restore with Ikuna
Install Ikuna and grant Accessibility: Ikuna reads window positions and app state via the macOS Accessibility API, a one-time step in System Settings → Privacy & Security → Accessibility. Arrange your setup the way you want it saved: open the apps for one project, move browser tabs into the right window, set the browser profile, activate the Focus Mode, position windows across your monitors. Save the workspace from the menu bar and name it something durable: the project name, the client, the role, not the tools inside it. Repeat for each context. Then restore: after a restart, or when you switch projects, open Ikuna and click the workspace name. Within a few seconds, the apps relaunch, windows return to their saved positions, browser tabs load into the right browser profile, and Focus Mode activates. You can assign a keyboard shortcut to each workspace so switching is a single keystroke.
Ikuna captures every open app, each window's position, size, and display, browser tabs with the associated Chromium profile per workspace, the current Focus Mode, and any per-workspace shell / AppleScript automation you configure. The free tier holds four saved workspaces; Pro (€9/month or €70/year, no lifetime deal) removes the limit.
Handling the per-project Chromium profile
If you use Chrome profiles to keep client work separate (one profile for Client A with their Google Workspace signed in, another for personal), the manual dance of quit Chrome, relaunch with the right profile is often the friction that kills a workspace-switching habit. Ikuna's per-workspace Chromium profile support means each saved workspace remembers which browser profile belongs to it. When you switch workspaces, the right profile launches. This works with Chrome, Brave, Arc, and other Chromium-based browsers.
Cross-Mac restore
If you have a MacBook and a desktop and want the same workspaces on both, Ikuna syncs workspace definitions via iCloud (since version 1.1). Save a workspace on one machine, open the same workspace on the other, and the setup is restored: apps launch, browser profiles load, positions adapt to the available displays.
What Ikuna does not automate
Being honest about the edges. iTerm2: Ikuna restores iTerm2 windows and tabs with their working directories. What it does not reconstruct is the full split-pane tree, scrollback, profiles, or running processes: after a reboot, no tool can replay a process that was running. Other terminals (Terminal.app, Ghostty, Warp) restore as app windows with their geometry, without tab-level state. macOS Space assignment: Ikuna does not pin apps to specific macOS Desktops. It captures window positions across monitors, but which Space macOS puts them on is not directly controlled. Unsaved documents: Ikuna doesn't preserve unsaved file state; that's up to each app. For most workflows these gaps don't matter. When they do, the honest path is per-workspace automation (a small AppleScript or shell command tied to the workspace) rather than pretending Ikuna handles them natively.
Doing it with Ikuna
Ikuna is built for the full restore: every app, tab, window position, and Focus Mode, back in one click or one keystroke.
- Full context capture: apps, window positions per display, browser tabs with per-workspace Chromium profiles, and Focus Mode.
- Restart-proof: restore a specific project context, not just whatever was open last.
- iCloud sync across Macs: save on one machine, restore on the other.
- Free tier holds four workspaces: Pro (€9/month or €70/year, no lifetime deal) removes the limit.
Native macOS · Local data · Built in EU
Common questions
How do I automatically restore all my apps after a restart?
macOS's Reopen windows when logging back in handles part of this. For the full context (tabs, Focus Mode, per-project browser profile) a workspace tool is required.
Can I have a workspace open automatically at login?
Ikuna can be configured to launch a specific workspace on login. Combined with macOS's own login items, you can go from cold boot to your working environment in about ten seconds.
Does this restore my code editor with the right project open?
Editors like VS Code, Cursor, and Xcode restore their own last-open project. Ikuna relaunches the editor; the editor handles the file state.
Will it restore my Slack channel selection?
Slack restores its own last-viewed channel per workspace. Ikuna launches Slack; Slack handles which channel you land on.