Run open -na "Google Chrome" --args --profile-directory="Profile 1", replacing Profile 1 with the profile's folder name. The folder name is shown on chrome://version as Profile Path. Each run opens a new window, because Chrome treats the request as a launch.
The command
open -na "Google Chrome" --args --profile-directory="Profile 1"
The -n flag starts a new instance request and --args passes what follows to Chrome. Use "Default" for your first profile.
Find the folder name
- Open the profile you want in Chrome.
- Visit
chrome://version. - Read the final folder name in Profile Path, for example
Profile 3.
Open a page in that profile
open -na "Google Chrome" --args --profile-directory="Profile 3" "https://example.com"
The catch
Every run is a launch request, so you get a fresh window each time. For one-click return to the window already open, see why Chrome opens a new window.
Useful variations
- Open Chrome in a profile and go straight to a page: add the address at the end of the command.
- Open in an incognito window of that profile: add
--incognito. - Use a completely separate user directory: add
--user-data-dir=/path/to/folder. This creates an independent Chrome state, not a profile inside your normal one.
Troubleshooting
- If nothing happens, check the app name inside the quotes matches the app in Applications exactly.
- If Chrome opens the wrong profile, the folder name is wrong. Read it again from
chrome://version. - If a window opens each time and that annoys you, that is expected behaviour for launch commands.
Questions people ask
Does this work for Chrome Canary?
Use its own app name, for example "Google Chrome Canary".
Can I put this in a Dock icon?
Yes, wrap it in an Automator application, or let Casement do it for you.
Try Casement
Casement is a menu-bar app for Mac that puts each Chrome profile in the Dock as its own icon and adds snap layouts, hover-to-focus, a window switcher, Dock window lists, a drop shelf and display controls..