← Rahim Nathwani

junction: an open-source browser picker for macOS

Codegithub.com/rahimnathwani/junction

Why I built it

I have several Chrome profiles, and I also use Microsoft Edge. A link clicked in Slack or Mail should open in the right browser and the right profile, not whichever one macOS treats as the default.

Browser pickers solve this: you make the picker your default browser, and it decides where each link goes. Velja and Choosy are good ones. But a browser picker sees every link you click, and links can contain secrets: password-reset tokens, signed download URLs, private document links. For software in that position I wanted something simple and open source, so anyone can read exactly what it does with a URL.

What it does

  • Picker at the pointer. A small floating panel, keyboard-first: 1–9 picks a browser, arrows move, ⏎ opens, Esc cancels, ⌘C copies the link.
  • Chromium profiles as choices. Chrome, Brave, Edge, Chromium and Vivaldi profiles each appear as their own option, badged with the profile picture. Rules can target a specific profile.
  • Rules. Match by domain, URL wildcard, URL regex or the app the link came from. First match wins.
  • Learns from you. Tick "Always use for example.com" in the picker, or hold ⌥ while choosing, and it creates the rule.
  • Link cleaning. Strips utm_*, fbclid, gclid and about 50 other tracking parameters, and unwraps Google, Outlook Safe Links, LinkedIn, Slack and other redirectors before routing.
  • Quiet. Menu bar only, no Dock icon, settings in one JSON file.

It never makes a network request of its own. That is also why it doesn't expand short links: doing so would mean fetching every one before opening it.

Compared with Velja and Choosy

junctionVeljaChoosy
PriceFree, MITFree + ProPaid
SourceOpenClosedClosed
Chromium profilesYesPro onlyYes
Tracking-parameter removalYesYesNo
Redirect unwrappingYesYesNo
Firefox profiles / containersNoNoYes
Minimum macOS141410.15

Limitations

  • macOS 14 Sonoma or later.
  • Not notarized. Release builds are ad-hoc signed, so the first launch needs right-click → Open. Or build from source with make install.
  • No Firefox profiles or containers.

Code, releases and the full rule syntax: github.com/rahimnathwani/junction.