Stage Manager on macOS Ventura

The car I learned to drive on had a manual transmission. That was over two decades ago, but learning on stick was still relatively uncommon among my peers. Driving a manual was (and still is) harder than an automatic. You have to time the clutch just right to get going lest the car stalls or lurches forward too quickly. In some settings, this hard work is rewarded. I find driving stick way more satisfying in hilly rural settings. That said, most driving is not done on hilly rural settings, but in stop and go traffic, where manual transmissions become burdensome at best and annoying at worst. Being harder and more annoying is why almost every car sold in the U.S. today has an automatic transmission.

Windowed interfaces, like those found in macOS and Microsoft Windows have historically been manual. The user opens, arranges, closes, minimizes and hides windows in whatever manner that suits their needs. When Mac OS and Windows came of age in the 80s and 90s, computers were only powerful enough to do a few things at once. These limited resources meant a given task typically involved launching a few apps, manually managing their small number of windows, then closing everything before starting the next task. Like driving stick on hilly rural roads, I find managing a small number of windows more satisfying than burdensome. Users on today’s computers can easily amass dozens of windows from a variety of apps. Furthermore, these apps and windows persist, even between reboots. There is no intrinsic impetus that forces users to quit latent apps or close latent windows. Manual windowed interfaces became cognitively burdensome when faced with unlimited persistent windows found in modern desktop computers. While some still find them delightful, more and more people find desktop computers harder and more annoying.

So what do you do?

Get Rid of Windows

The first solution to desktop computing’s window problem was simple: get rid of the windows. The first iPad, like the iPhone before it, only displayed a single app at any given time. People loved this simplistic model, but limiting interaction to just a single app came with an obvious trade-off — multitasking. While navigating between iPad apps was incredibly easy, working with more than one app at a time became incredibly difficult, if not impossible. The original iPad replaced users’ cognitive burden of having too many windows open at once with a functional one that limited what they could do.

Slides, Splits, and Snaps

In 2015 with iOS 9, Apple addressed the iPad’s multitasking burden in two ways: Slide Over and Split View. Slide Over let users designate an app that they could slide over from the left or right side to interact with. Once users returned to the primary app, the slide over app would slide back off screen from whence it came. Split View, by comparison, let users have two apps open side by side on screen at the same time.

In my mind, Split View is along the same lines of what I’ll call “gridded UIs”, where apps are laid out in a grid. Microsoft has recently been pushing it’s gridded solution in Windows 11, called “Snap”. Here’s how Microsoft describes it:

Organize what’s on your screen in a snap so you can bring out your best ideas. Just drag a window to the edge of the screen to activate Snap assist and “snap” them into a clean, organized grid.

The difference between iPad’s Split View is that Snap makes it possible to arrange apps vertically and horizontally so, for example, you can have a 4×4 grid.

Fundamentally, these sort of gridded UIs all try to mitigate the complexity and burden of multitasking by preventing persistent overlapping windows. Simply put, only so many apps can fit in a single display at the same time. Personally, I’ve found gridded UIs to be lacking ever since I first saw Windows 1.0. When using grids, apps’ sizes. and more importantly their aspect ratios, are dictated by other windows that are on screen. Say you want to work across a spreadsheet, word processor, and a browser. Not only do all of these apps benefit from a large amount of screen real estate, both the word processor and browser need a minimum amount of size just to be entirely visible. In a gridded UI, some or all apps would have to compromise on space and you would have to scroll constantly within each app to see the entirety of what’s being worked on. I would also argue gridded UI’s don’t provide more focus as they visually give each app the same depth.

Full-screens, split views and grids all treat overlapping windows as part of, if not the root cause behind, burdensome window management. To me that’s throwing the baby out with the bath water. While there is no question in my mind that windowed interfaces have become burdensome to most users, I don’t think overlapping windows are the problem. It’s that there are too many of them and they all need to be manually managed.

This is where Apple’s Stage Manager comes in.

Stage Manager — Automatic Window Management

I have been using Stage Manager in macOS Ventura on my home machine for about two months. Unlike the full-screens, split views and grids before it, Stage Manager supports as many windows as desired (at least on macOS Ventura) and even embraces overlapping them. Rather than physically constrain the dimensions and number of windows that can be open at once, Stage Manager instead reduces the cognitive burden of multiple windows by automatically managing which ones are currently on screen. Windows from apps not currently being worked are automatically minimized or hidden. The result is a much cleaner and more focused workspace.

Stage Manager is enabled from Control Center. When Stage Manager is enabled, three things happen:

  1. The current app’s windows are left on the main portion of the screen, called a “stage”.
  2. Windows from the four most recent apps are organized by each app and minimized into a “strip”.
  3. All other windows are hidden.

Clicking on an entry in a strip1 replaces the current window or set on stage with that entry’s window or set. Apps not currently in Stage Manager can still be easily added by either the dock or the command+tab switcher. Whenever a new app is brought into Stage Manager, the least most recent one in a strip will be pushed out.

You might read that and think Stage Manager only shows one app on the stage at any given time and wonder how it could possibly be an improvement to multitasking. That is indeed how Stage Manager works without any user intervention and left to that, it would definitely be a disaster for multitasking. Thankfully, there’s more to the story.

Sets are a collection of multiple windows to be displayed on a stage simultaneously. Clicking on a set in a strip brings all windows belonging to that set to a stage. Conversely, a set of windows currently on a stage will all minimize into a single entry in a strip whenever it’s replaced. Stage Manager automatically organizes multiple windows belonging to the same apps into sets by default, but users can also create sets with windows from multiple apps.

In my experience, user created sets are where Stage Manager shines. The set I am currently using while writing this review has windows from BBEdit and Safari. I also have sets for Discord and Slack, as well as Twitter and Tweetbot. I look forward to having Visual Studio Code and Terminal sets once I am allowed to install Ventura on my work machine. Sets let me focus on the work at hand by reducing the clutter while still keeping other windows and apps visually close at hand.

Sets fundamentally change the UI Hierarchy in macOS. Historically, windows in macOS typically belong to apps. This hierarchy is evident when using keyboard navigation where command+tab cycles through apps and command+` cycles through windows of the current app. In Stage Manager, windows belong to sets. As such, invoking command+` cycles through windows of the set currently on stage2. I am sure other old Mac users will hate this, but I love it and think Apple needs to take it further. I think of this set containing windows from BBEdit and Safari as a pseudo app of sorts. One that contains the windows for the work I am doing right now. In that sense, having command+` to conveniently switch between these two windows is way more useful to me than cycling to some window that happens to belong to the same app, but is irrelevant to my task at hand. My biggest complaint with Stage Manager is that they didn’t take it further and update command+tab to include my user defined sets.

Changing command+`, but not command+tab takes me to my overarching criticism of Stage Manager. While functionally solid compared to it’s iPad counterpart, Stage Manager in macOS Ventura feels disconnected. In addition to the lack of keyboard shortcuts, there is also no automation support for Stage Manager. The lack of AppleScript support, while disappointing, is unsurprising, but there aren’t even any Stage Manager actions available in Shortcuts. Furthermore, while I love Stage Manager’s sets, adding windows to existing sets is often needlessly cumbersome. While you can easily add windows already in a strip (either by dragging or shift+clicking them), there is no direct way to add an app outside of Stage Manager to an existing set. Instead you have to let Stage Manager open the app separately, then return to the set in question before finally adding said app’s window from the strip. That you can’t add an app to the current set directly from the dock is maddening.

Given the lack of functionality around managing and navigating sets, I can’t help but feel Stage Manager was born out of a tension between being a focus mode while also introducing the concept of window sets. This is illustrated by the “Show windows from an application” drop down in Stage Manager’s settings, where two options are presented:

  • All at Once: Show all available windows for an app when you switch to it.
  • One at a Time: Show only the most recently used window for an app when you switch to it.

In earlier betas, the default was “One at a Time”. In other words, Stage Manager prioritized maximal focus by showing only one window at a time. The default changed by the time of release to “All at Once”. Both options are reasonable, and while I don’t think sets and focus are entirely at odds, changing the default is a clear example of this tension and makes me wonder whether those working on Stage Manager lacked a clear north star.

Despite these criticisms and concerns, I think Stage Manager in macOS Ventura still effectively alleviates the burden of too many windows. My hope is that Apple continues to iterate on Stage Manager in ways small and large. In addition to adding automation support and improving keyboard shortcuts, I want to see Apple further examine how sets holistically change the UI hierarchy in macOS. Even as it is today, I expect to have Stage Manager enabled more often than not.

My larger take from using Stage Manager is that window-based UIs really haven’t kept up with the capabilities of modern computers. It’s easy to look at a UI with too many windows and conclude that it’s the windows themselves that are bad, but here’s the rub. People wouldn’t be opening new windows if they weren’t useful. What if the problem of “too many windows” isn’t that windows are bad, rather that they actually work so well that it’s easy to keep adding them until there’s too many of them to manually manage? And if that’s the case, does it really make sense to get rid of them?

People still drive cars with transmissions, it’s just most of them don’t have to think about it because they bought an automatic.

Update: Changed “hundreds of windows” to “dozens of windows”. While people do have too many windows, “hundreds” was an overstatement.


  1. A keen eye will notice I am using the indefinite article for “strip” and “stage”. That’s because you can have multiple of them. In Stage Manager, a strip and a stage are added to a display or a space. This is compared to the dock, which singularly exists regardless of the number of spaces or displays involved. ↩︎

  2. It’s actually a bit more complicated than that, but I think this summary suffices now that Stage Manager defaults to creating sets rather than stacks when enabled. ↩︎