Rules are checked top to bottom and the first match wins. Every failure path — a missing browser, a deleted profile, an app that isn't installed — degrades to your fallback browser. A link is never lost.
Patterns
Wildcards, or full regex
Match on host/path — *.atlassian.net/*, app.clickup.com/*. * stays inside a segment, ** crosses them, and *.example.com includes the apex domain. Drop to regex when the query string matters.
Source app
Route by where the click came from
A rule can match the app that opened the link — sourceApps: ["com.googlecode.iterm2"] sends Terminal links somewhere other than Mail links.
Profiles
Down to the browser profile
Chromium profile directories (Default, Profile 1) and Firefox profile names. Work links land in the work profile, not just the work browser.
Deep links
Skip the tab entirely
17 built-in rewriters — Zoom, Slack, Figma, Notion, Spotify, Linear, Teams and more — turn a web URL into a native app link. Add your own from Settings → Deep Links.
Picker
Decide at click time
Hold ⌥ Option while clicking any link to force the picker, or give a rule a prompt action so it always asks.
Yours
A config file you own
Rules live in JSON at ~/.config/junction/config.json (honors $XDG_CONFIG_HOME). Edit in the GUI or your editor; it hot-reloads, and an invalid edit keeps the last-good rules.