What Grinch does
-
Rules you can read
Match a link by host, wildcard, or regular expression, by the app it came from, by an app that is running, or by the modifier keys you held. The first matching rule wins; everything else goes to your default.
{ match: from("com.tinyspeck.slackmacgap"), open: "Google Chrome" } -
Your browser profiles
Open a link in a named profile, a private window, or a new window in supported Chrome and Firefox browsers, or hand it to an app such as Zoom.
{ match: "github.com", open: { name: "Google Chrome", profile: "Work" } } -
Cleaner links
Strip tracking parameters, and unwrap Microsoft SafeLinks, Proofpoint URL Defense, and Teams launcher links before your rules see them.
rewrite: [safelinks(), teams_launcher(), strip("utm_*")] -
Sign-in pages too
Apps that sign in through
ASWebAuthenticationSession, such as Slack, send their sign-in pages through the same rules, so your company's sign-in can open in your work profile.{ match: "login.microsoftonline.com", open: "Google Chrome:Work" }
Small, native, and checkable
Grinch is one native binary. It evaluates your config with the system's JavaScriptCore and compiles declarative rules to native matchers, so a hostname rule resolves in about 40 nanoseconds on Apple Silicon. See the benchmarks and how to reproduce them.
A config that fails to reload never takes routing down: Grinch keeps the
last config that loaded and shows the error in the menu bar.
Grinch --test shows a decision without opening a browser, and
the diagnostic log records which rule
sent each link where.
Coming from Finicky?
Grinch is inspired by Finicky
and Finch. Most Finicky v4
configs work with Grinch, including export default and Finicky's
key names. Moving from Finicky covers the
differences.
Documentation
- Get started Install, write a first rule, make Grinch your default browser, and undo it.
- Configuration Rules, match types, browser targets and profiles, URL rewrites, and options.
- Troubleshooting Why a link opened where it did: commands, the menu bar, and the diagnostic log.
- Integrations
Sign-in popups, the
grinch:URL scheme, browser add-ons, and URL shorteners. - Moving from Finicky Bring a Finicky v4 config across and adjust what differs.
- Performance Routing benchmarks, memory measurements, and how to reproduce them.