Chrome profile switcher options on a Mac

The search usually starts after the fourth or fifth switch of the morning. Click the avatar in the top right, wait for the menu, pick the right name, wait for a window, then find the tab. It takes about four seconds and it happens twenty times a day. Somewhere in there the thought arrives that an extension must exist for this.

It does not, and the reason is worth understanding before spending an afternoon looking. Chrome's profile boundary is the same boundary that keeps a work Google account from leaking into a personal one, and an extension sits inside that boundary rather than above it. What is available instead is a set of launch tricks that most people never see, because they live on the command line rather than in the browser.

Why an extension cannot do this job

An extension is installed into a profile, not into Chrome. Install a password manager in the work profile and it is absent from the personal profile until installed there separately. Its background service worker, its storage, its permissions, and its view of open tabs all stop at the profile edge.

The published API surface reflects that. The extension API reference lists interfaces for tabs, windows, tab groups, sessions, bookmarks, history, cookies, downloads and dozens of other things. There is no profiles API. Nothing in the documented surface enumerates the other profiles on the machine, and nothing opens a window belonging to one of them.

This is deliberate rather than an oversight. The Chromium design document for multiple profiles is direct about where the wall sits.

Tabs will not be allowed to move across account boundaries. Source: chromium.org

If a tab cannot cross that line, neither can an extension acting on tabs. Anything in the Chrome Web Store calling itself a profile switcher is doing something else. Usually it is switching accounts inside one website, or it is a launcher that ships with a companion program installed outside the browser. That second design is legitimate, because native messaging lets an extension hand a request to a local binary, and a local binary can start Chrome however it likes. It is also the point at which the extension has stopped being an extension and started being an app with a browser button attached.

What Chrome itself provides, and where it stops

The official route is the avatar menu, and Chrome's own help page describes exactly that: open the profile menu at the top right, then choose the profile to switch to. Each profile opens its own window, keeps its own bookmarks, history, passwords and extensions, and carries its own colour and avatar so the window can be identified on sight.

There is one setting on that page worth turning on immediately, because it is off by default and it removes a step. Under the profile menu, choose to manage Chrome profiles, and enable the option to show the profile picker on startup. Chrome then opens with the chooser rather than dropping into whichever profile was last used, which is the single most common cause of typing a message into the wrong account before breakfast.

The same help page carries a warning that is easy to skim past and matters if a Mac is ever shared, borrowed, or left unlocked in an office.

Anyone using the device can switch to any other Chrome profile that's set up on that device. Source: support.google.com

A profile separates data. It does not lock it. For separating a client's account from a personal one on a machine only one person touches, that is fine. For anything where the separation needs to hold against another human being, a profile is the wrong tool and a separate macOS user account is the right one.

macOS adds a second problem the browser cannot see

Even with switching solved, the windows are still hard to reach, because macOS does not know that profiles exist. Every profile window is a window of one application called Google Chrome. Apple's shortcut list describes the application switcher plainly.

Command-Tab : Switch to the next most recently used app among your open apps. Source: support.apple.com

Apps, not windows. Six profile windows are one destination in that list. Moving between them falls to the grave accent shortcut on the same page, which switches between the windows of the application currently in use. That shortcut cycles in most recently used order, which means the destination changes depending on what happened a minute ago. It cannot be aimed. With two profiles it is close enough to a toggle to feel fine. With four or more it becomes a small guessing game, played twenty times a day.

Mission Control and the window list under the Dock icon both show every Chrome window as a page thumbnail, and page thumbnails of two Gmail accounts look identical. The visual tag Chrome adds is a small coloured avatar in the corner of the toolbar, which is legible when the window is in front and useless when the window is one of nine tiles on a screen.

Launching a profile directly, which is the actual switcher

Chromium accepts a command line switch that names the profile to open. The comment in the source is one line.

Selects directory of profile to associate with the first browser launched. Source: chromium.googlesource.com

On a Mac the invocation goes through the open command, and one flag decides whether it works at all. From the macOS manual for open, the -n flag means "Open a new instance of the application(s) even if one is already running", and --args passes everything after it to the application. Without -n, a running Chrome simply comes to the front and the arguments are never read, which is why this trick is widely reported as broken by people who tried it once with Chrome already open.

open -na "/Applications/Google Chrome.app" --args --profile-directory="Profile 3"

The value is the folder name on disk, not the display name. Chrome's first profile is always Default, and the rest are Profile 1, Profile 2 and so on in creation order, which rarely matches the order shown in the menu. The folder names are visible under ~/Library/Application Support/Google/Chrome/, and the mapping from folder to display name is stored in the Local State file in that directory.

There is a second switch that avoids the folder name problem entirely. The same source file documents profile-email, described as selecting the profile by email address instead, with no effect if that address is not found in any existing profile. For anyone whose profiles are each signed into a different Google account, that is the more durable option, because an email address does not change when profiles are deleted and recreated.

Turning a command into something with a hotkey

A command in a terminal is not a switcher. It becomes one when it is attached to something reachable without the hands leaving the keyboard, and there are four common shapes for that on a Mac.

The lightest is a shell alias or function, useful for anyone already in a terminal all day and useless for anyone who is not. The most visible is an Automator application saved to the Applications folder, one per profile, each running the command above. Each becomes a real icon that can be dragged to the Dock and given a custom image, so the work profile and the client profile are two distinct pictures rather than two identical Chrome circles.

The fastest is a keyboard launcher. Any launcher that can run a shell command against a keyword will do it, and once configured, a profile is two keystrokes away rather than a menu traversal. The most system native is a Shortcuts entry running the command, which can then be bound to a hotkey in Keyboard settings.

All four share one limitation worth naming in advance. They open the profile, they do not focus a specific tab inside it. If the goal is to reach one particular web app rather than one particular identity, this whole approach lands one step short, and the remaining step is still a visual scan through the tab strip.

The methods compared

Method Speed to switch Reaches a specific app Setup effort Breaks when
Avatar menu Slow, three actions No None Never
Profile picker on startup Once per launch No One setting Chrome stays open all day
Command and Grave Fast No None More than two windows
--profile-directory launch Fast No Moderate Profiles are recreated
--profile-email launch Fast No Moderate Account signed out
Launcher hotkey per profile Fastest No Moderate Launcher is uninstalled
One window per web app Fastest Yes Moderate Never

The column that decides the answer is the third one. Every row except the last treats identity as the thing being switched, which is correct only if the number of accounts is small and the number of web apps inside each is smaller still. For someone with three accounts and fifteen daily web apps, solving identity leaves the larger search untouched.

When the profile is the wrong unit entirely

Profiles were designed for a browser used by more than one person on a shared family computer. That origin still shows. The unit is the identity, everything inside it is a tab, and the browser has no opinion about which of those tabs is a document to be read once and which is a chat client that must stay connected all day.

A different arrangement puts the boundary around the application instead. Each web app gets its own persistent space with its own session, so two accounts of the same service are two entries rather than two windows, and switching happens by name or shortcut instead of by menu. Account separation comes along for free, because separate sessions were the point. That layout is described under Workspaces, and the routing questions that follow from it, meaning notifications and where an outside link lands, are covered under Features.

The category has free and paid entries with different trade-offs, and the honest comparison is not about which is best but about which boundary each one draws. The community maintained option is examined in the comparison with Ferdium, and the subscription products in the same space are covered in the comparison with Wavebox.

One caution applies to every option in the category. Moving a working setup into a tool that gathers everything inside itself is a multi year commitment, so the maintenance status of the tool matters at least as much as its feature list. Check the release history before moving anything that matters.

What to change first

Turn on the profile picker at startup today, since it costs one setting and removes the most expensive mistake, which is discovering the wrong account after sending something. Then count for a week: if the wasted time is mostly about identity, build one launcher entry per profile with --profile-email and stop there. If it is mostly about finding a screen that is already open somewhere, a switcher will not help, and a per app layout such as SpaceDeck is the change that does.

Frequently asked questions

Is there a Chrome extension that switches profiles?

No extension can do it on its own. Extensions are installed per profile and the documented API surface has no profiles interface, so an extension in one profile cannot see or open another. Store listings that use the phrase are usually switching accounts inside a single website, or they ship a companion program installed outside the browser that starts Chrome with a command line flag.

How do you open a specific Chrome profile from the command line on a Mac?

Use open -na "/Applications/Google Chrome.app" --args --profile-directory="Profile 1". The -n flag is required, because without it a running Chrome just comes to the front and the arguments are ignored. The value is the folder name inside ~/Library/Application Support/Google/Chrome/, not the display name shown in the menu.

Why does Command and Tab not switch between Chrome profiles?

Because macOS sees one application. Every profile window belongs to Google Chrome, so Command and Tab treats them as a single destination. Command and Grave moves between windows of the front application, but it cycles in most recently used order, so it cannot be aimed at a particular profile.

Is a Chrome profile secure enough to separate work from personal on a shared Mac?

Not against another person. Chrome's help page states that anyone using the device can switch to any other profile set up on that device, so profiles separate data without locking it. For separation that has to hold against another human being, use separate macOS user accounts instead.

Do profile switching methods also work for reaching a specific tab?

No, and this is the common disappointment. Every launch based method opens the profile and leaves the tab search untouched. Reaching a specific web app quickly needs a layout where the app itself is the unit being switched to, rather than the identity that contains it.

Back to all posts