How to Open Links in a Specific Chrome Profile on Mac
Chrome on Mac opens links from other apps in the profile you used last. Here is how to pick the profile yourself, from Terminal to a one-key picker.
When you click a link in Slack, Mail or Notes, Chrome on Mac opens it in the profile you used last, and there is no
setting to change that. To choose the profile yourself, you can drag the link into a window of the right profile, open
it from Terminal with Chrome's --profile-directory switch, or use a link picker app that asks you each time.
Below are the manual ways first, with what each one can and can't do.
Why Chrome picks the profile it does
Every Chrome profile is a folder in ~/Library/Application Support/Google/Chrome. The first one is called Default
and the rest are Profile 1, Profile 2 and so on. The names you see in Chrome, like "Work" or "Personal", are only
labels stored in a file called Local State next to those folders.
When another app hands Chrome a link, macOS doesn't say anything about profiles. It just gives Chrome the address, and Chrome sends it to the profile you were last using. If you switched to your personal profile to check something five minutes ago, the next work link from Slack lands there too.
Way 1: Drag or paste the link into the right window
The simplest fix needs no setup.
- Bring up a Chrome window that belongs to the profile you want. Each window shows its profile picture or name at the top right of the toolbar.
- Drag the link from the other app onto that window's tab bar, or right-click the link, copy it, and paste it into a new tab in that window.
What it can't do: it is manual every time, and you need a window of that profile open already. A normal click still goes to the last-used profile.
Way 2: Open the link from Terminal
Chrome has a command-line switch, --profile-directory, that names the profile folder to open a link in. On a Mac you
pass it through the open command.
Step 1: Find the profile's folder name
The folder name is not the name you gave the profile, so look it up first.
- Open Chrome in the profile you want.
- Type
chrome://versionin the address bar and press Return. - Find the line called Profile Path. The last part of that path is the folder name, for example
Profile 3.
If you have several profiles, you can list every folder next to its display name in one go. This reads Chrome's
Local State file and changes nothing:
python3 -c 'import json,os; c=json.load(open(os.path.expanduser("~/Library/Application Support/Google/Chrome/Local State")))["profile"]["info_cache"]; [print(d, "=", v["name"]) for d,v in c.items()]'
Each line looks like Profile 3 = Work. If your Mac has never used python3, macOS offers to install the Command Line
Tools first. Don't be surprised by gaps in the numbers: when you delete a profile, its number isn't reused.
Step 2: Open the link in that profile
open -na "Google Chrome" --args --profile-directory="Profile 3" "https://example.com"
What each part does:
-nstarts a new copy of Chrome even if Chrome is already running. That short-lived copy passes the link to your running Chrome and quits, so you don't end up with two Chromes.-a "Google Chrome"picks the app.--argshands everything after it to Chrome itself.--profile-directory="Profile 3"is the folder from step 1. Keep the quotes, because the name has a space.- The link goes last.
Two things to watch for, both of which we ran into while testing:
- A typo creates a new profile. If the folder you name doesn't exist, Chrome doesn't complain. It quietly makes a brand-new, empty profile and opens the link there. Copy the folder name exactly.
- Don't put
--before the link. Some command-line habits add--to mean "end of options". Chrome drops anything that comes after it, so the link never opens.
To save typing, add a small function to your ~/.zshrc:
work() { open -na "Google Chrome" --args --profile-directory="Profile 3" "$@"; }
Open a new Terminal window and work https://example.com opens the link in that profile.
What it can't do: it only works for links you paste into Terminal. Clicking a link in Slack or Mail still sends it to the last-used profile, because macOS gives links to the default browser, not to your shell.
Brave, Edge and other Chromium browsers
Brave, Microsoft Edge and Vivaldi are built on Chromium and use the same --profile-directory switch. Only the app name
and the folder change. For Brave, the profiles live in ~/Library/Application Support/BraveSoftware/Brave-Browser, so
the command becomes:
open -na "Brave Browser" --args --profile-directory="Profile 1" "https://example.com"
The faster way: LinkRouter
LinkRouter is a small Mac app we make that does the profile choice for every link you click, not only the ones you type. You make it your default browser once, and from then on any link from any app shows a tiny picker right at your mouse with every browser and every Chrome profile on your Mac, each with its picture and name.
- Press a number key to open the link in that row, or type a few letters to filter. Esc closes the picker.
- Hold ⇧ while you pick to open it in a private window.
- Hold ⌘ while you pick and LinkRouter saves a rule, so that site always opens in that profile without asking. Rules can also go by app, so links from Slack can always open in your work profile.
- Hold ⌥ while clicking a link to get the picker back for a site that already has a rule.
- Opened it in the wrong place anyway? Press ⌃⌥B to bounce the tab to another profile.
LinkRouter reads your profiles from Chrome's own files each time they change and only ever opens a profile folder that still exists, so a deleted profile never turns into a surprise empty one. It lists profiles for Chrome, Brave, Edge, Vivaldi and Firefox-family browsers like Zen, and it also cleans tracking junk out of links before they open. It runs entirely on your Mac.
It costs $5 for 1 Mac, $10 for 3 Macs or $15 for 5 Macs, paid once. It can also open email links in Gmail as the right account, which we cover in how to make email links open Gmail instead of Apple Mail.
FAQ
Can I set a default Chrome profile for links on Mac?
Not in Chrome itself. Links from other apps go to the profile you used last. To always use one profile, open it in
that profile from Terminal with --profile-directory, or use an app like LinkRouter with a rule.
How do I find my Chrome profile directory name?
Open Chrome in that profile, go to chrome://version, and look at Profile Path. The last part of the path, such
as Default or Profile 2, is the directory name.
Why did Chrome create a new profile when I used --profile-directory?
The folder name didn't match an existing profile. Chrome treats an unknown name as a request for a new profile and
creates it silently. Check the exact name, including capitals and the space in Profile 2.
Does --profile-directory work if Chrome is already open?
Yes. With open -n, a second copy of Chrome starts, hands the link to the Chrome that's already running, and quits.
The link opens in the profile you named.
Does this work for Safari profiles?
No. The --profile-directory switch is a Chromium feature. Safari doesn't take a profile on the command line.