Finicky is a free, open-source macOS application that acts as your default browser — intercepting every link click and URL open event, then routing it to whichever real browser you choose based on rules you define in a plain JavaScript config file.
What is Finicky?
Finicky is a programmable link router for macOS. Instead of pointing your system default browser at Safari, Chrome, or Firefox, you point it at Finicky — and Finicky decides, in real time, which browser actually opens each URL. That decision is driven entirely by a config file you write yourself, which means the logic can be as simple or as elaborate as your workflow demands.
The app itself is invisible during day-to-day use. There is no window to manage, no toolbar to park, just a tiny menu-bar icon that confirms it is running. All the intelligence lives in ~/.finicky.js, a JavaScript file where you declare rules against URL patterns, source applications, and anything else you can extract from the incoming link.
What does Finicky do best?
Finicky excels at enforcing hard boundaries between work and personal browsing without any manual switching. I use it to send every link that originates from Slack or Mail straight to my work Chrome profile, while the same URL typed into a terminal lands in Firefox. That alone eliminated half my "wrong browser" frustrations.
- Pattern matching on URLs — regex, string prefix, or custom JavaScript functions give you surgical precision.
- Source-app awareness — open links from a specific app in a specific browser, always.
- Browser profile routing — target named Chrome or Edge profiles, not just browsers as a whole.
- Rewriting URLs before opening — strip tracking parameters, swap mobile URLs for desktop equivalents, or redirect through a privacy proxy.
- Logging and a built-in URL tester — the menu-bar dropdown shows recent decisions and lets you test a URL against your rules before committing them.
What makes the JavaScript config approach genuinely powerful — versus a GUI with dropdowns — is composability. You can import helper functions, pull in environment variables, or write conditional logic that changes routing based on time of day. Other menu-bar switchers like OpenIn offer a friendlier GUI but plateau quickly once your routing needs grow complex.
Is Finicky free?
Yes — Finicky is completely free and open-source under the MIT licence. There is no paid tier, no subscription, and no feature gating. You can install it via Homebrew Cask (brew install --cask finicky) or download the app directly from the GitHub releases page. The author, John Stegeman, actively maintains the project.
Who should use Finicky?
Finicky is built for power users who live across multiple browsers for principled reasons — not indecision. If you keep Chrome strictly for Google Workspace, Firefox for personal use, and Safari for battery life on long flights, Finicky automates the separation without any per-click effort.
Developers in particular find it indispensable: localhost URLs can go to one browser for devtools parity, staging links to another, and production URLs to a third for clean testing. Professionals who manage multiple client accounts in browser profiles also benefit — routing by domain means you never accidentally open a client's Salesforce link inside your personal session.
If you use only one browser for everything, Finicky offers you nothing. And if the idea of editing a JavaScript file is a dealbreaker, you may prefer OpenIn, which trades power for a polished GUI. But for anyone comfortable with a text editor and a config file, Finicky is the more capable tool by a wide margin.
How does Finicky compare to OpenIn?
OpenIn is the obvious alternative — it solves the same core problem and ships with a graphical rule editor that requires zero coding. It costs a modest one-time fee on the Mac App Store and is the friendlier choice for users who want point-and-click control.
Finicky wins on raw flexibility. Its JavaScript config supports conditionals, URL rewriting, source-app detection, and custom functions that OpenIn simply cannot match. It also carries no price tag. The trade-off is a steeper setup: you need to write and maintain a config file, and debugging requires reading the menu-bar log rather than interacting with a GUI. For technically minded users, that trade-off favours Finicky easily. For everyone else, OpenIn is the safer starting point.
What are the best Finicky alternatives?
The short list for macOS browser-routing tools is small but meaningful. OpenIn is the GUI-first alternative already mentioned. Choosy (now discontinued but still discussed in forums) was an earlier entrant in this category. Some users roll their own solution with a custom URL-scheme handler in a shell script, though that approach lacks Finicky's real-time logging and testing helpers. For pure default-browser switching without rules — just "ask me every time" — macOS's own browser prompt satisfies that use case without any third-party tool.