https://github.com/johnste/finicky
  
  
    A macOS app for customizing which browser to start 
    https://github.com/johnste/finicky
  
browser go handler macos menu productivity typescript url
        Last synced: 6 months ago 
        JSON representation
    
A macOS app for customizing which browser to start
- Host: GitHub
 - URL: https://github.com/johnste/finicky
 - Owner: johnste
 - License: mit
 - Created: 2015-06-12T11:46:13.000Z (over 10 years ago)
 - Default Branch: main
 - Last Pushed: 2025-05-13T18:36:46.000Z (6 months ago)
 - Last Synced: 2025-05-13T19:41:17.247Z (6 months ago)
 - Topics: browser, go, handler, macos, menu, productivity, typescript, url
 - Language: Go
 - Homepage:
 - Size: 3.81 MB
 - Stars: 3,994
 - Watchers: 27
 - Forks: 153
 - Open Issues: 27
 - 
            Metadata Files:
            
- Readme: README.md
 - Funding: .github/FUNDING.yml
 - License: LICENSE
 
 
Awesome Lists containing this project
- open-source-mac-os-apps - Finicky - Always opens the right browser. ![swift_icon] (Applications / Browser)
 - awesome-swift-macos-apps - Finicky - commit/johnste/finicky?style=flat&label=" /> - Always opens the right browser. (Browser)
 - awesome-swift-macos-apps - Finicky - Always opens the right browser. (Browser)
 - awesome-mac - johnste/finicky
 - awesome-mac - johnste/finicky
 
README
          
  
  
 Always open the right browser
    
Finicky is a macOS application that allows you to set up rules that decide which browser is opened for every url. With Finicky as your default browser, you can tell it to open Bluesky or Reddit in one browser, and LinkedIn or Google Meet in another.
- Route any URL to your preferred browser with powerful matching rules
- Automatically edit URLs before opening them (e.g., force HTTPS, remove tracking parameters)
- Write rules in JavaScript or TypeScript for complete control
- Create complex routing logic with regular expressions and custom functions
- Handle multiple browsers and apps with a single configuration
- Keep your workflow organized by separating work and personal browsing
[](https://GitHub.com/johnste/finicky/releases/)  
## Table of Contents
- [Install](#install)
- [Basic configuration](#basic-configuration)
- [Configuration](#documentation)
## Install
- Download from [releases](https://github.com/johnste/finicky/releases)
- Or install via homebrew: `brew install --cask finicky`
## Basic configuration
Here's a short example configuration that can help you get started
```js
// ~/.finicky.js
export default {
  defaultBrowser: "Google Chrome",
  rewrite: [
    {
      // Redirect all x.com urls to use xcancel.com
      match: "x.com/*",
      url: (url) => {
        url.host = "xcancel.com";
        return url;
      },
    },
  ],
  handlers: [
    {
      // Open any url that includes the string "workplace" in Firefox
      match: "bsky.app/*",
      browser: "Firefox",
    },
    {
      // Open google.com and *.google.com urls in Google Chrome
      match: [
        "google.com/*", // match google.com urls
        "*.google.com*", // also match google.com subdomains
      ],
      browser: "Google Chrome",
    },
  ],
};
```
See the [configuration](#configuration) for all the features Finicky supports.
## Configuration
Finicky has extensive support for matching, rewriting and starting browsers or other application that handle urls. See the wiki for the [full configuration documentation]() explaining available, APIs and options as well as detail information on how to match on urls.
- The wiki has some good [configuration ideas](https://github.com/johnste/finicky/wiki/Configuration-ideas).
- Visit [discussions](https://github.com/johnste/finicky/discussions) to discuss supporting specific apps.
# Other
### Building Finicky from source
See [Building Finicky from source](https://github.com/johnste/finicky/wiki/Building-Finicky-from-source)
### Works well with
If you are looking for something that lets you pick the browser to activate in a graphical interface, check out [Browserosaurus](https://browserosaurus.com/) by Will Stone, an open source browser prompter for macOS. It works really well together with Finicky!
### Questions
Have any other questions or need help? Please feel free to reach out to me on [Bluesky](https://bsky.app/profile/mejkarsense.se) or post an issue here
## License
[MIT](https://raw.githubusercontent.com/johnste/finicky/master/LICENSE)
Icon designed by [@uetchy](https://github.com/uetchy)