DEV Community

bada
bada

Posted on

I Built a macOS App to Stop Links From Opening in the Wrong Chrome Profile

I use multiple Chrome profiles.

Every morning I open Slack, click a Notion link, and watch it open in my personal profile. I copy the URL, switch to the work profile, paste, hit enter. Then I click a GitHub link in email — same thing, wrong profile. Copy, switch, paste.

I've been doing this dozens of times a day for years. At some point I stopped counting and started building.

What I Wanted

  • Route links from outside Chrome (Slack, email) and links clicked inside Chrome
  • Set a rule once and forget about it — no profile picker every time
  • Support wildcards and regex, not just exact domains

I wanted something that covered the full loop. So I decided to build it myself.

So I Built It

LinkPrism is a macOS menu bar app. You set it as your default browser, add a few rules, and that's it.

notion.so        → Work
github.com       → Personal
*.atlassian.net  → Work
docs.google.com  → Ask every time
Enter fullscreen mode Exit fullscreen mode

Rules can be exact host matches, wildcards, or regex. For domains you use across profiles, there's an "Ask" mode — a profile picker pops up and you can check "Don't ask again for this URL."

This handles links from Slack, email, Telegram — anything outside Chrome. But there's a catch.

The Harder Part: Links Inside Chrome

Links clicked inside Chrome never hit the OS default browser handler. Chrome handles them internally. The app can't see them.

So I built a companion Chrome extension (Manifest V3) that:

  1. Syncs rules from the macOS app via a local HTTP server on 127.0.0.1:19384
  2. Detects which Chrome profile it's running in using chrome.identity
  3. Matches rules client-side on every navigation
  4. Reroutes only when the current profile is wrong — no unnecessary redirects

Now the full loop is closed. External links go through the app. In-browser links go through the extension. No gaps.

The Thing I Didn't Expect

After using it for a while, I realized the annoyance wasn't just the extra clicks. It was the context switching. Every wrong-profile link pulled me out of whatever I was focused on. Fixing this tiny friction removed a surprising amount of daily cognitive noise.

If you juggle Chrome profiles, you might not even notice how much energy goes into this routine until it's gone.


Feedback, issues, and PRs are all welcome. If you have a different approach to this problem, I'd love to hear about it in the comments.

Top comments (0)