junction: an open-source browser picker for macOS
October 31, 2026
Codegithub.com/
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–9picks a browser, arrows move,⏎opens,Esccancels,⌘Ccopies 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,gclidand 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
| junction | Velja | Choosy | |
|---|---|---|---|
| Price | Free, MIT | Free + Pro | Paid |
| Source | Open | Closed | Closed |
| Chromium profiles | Yes | Pro only | Yes |
| Tracking-parameter removal | Yes | Yes | No |
| Redirect unwrapping | Yes | Yes | No |
| Firefox profiles / containers | No | No | Yes |
| Minimum macOS | 14 | 14 | 10.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.