https://github.com/johnste/finicky
A macOS app for customizing which browser to start
https://github.com/johnste/finicky
browser handler macos menu productivity swift typescript url xcode
Last synced: 5 days 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 (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T20:19:48.000Z (12 days ago)
- Last Synced: 2025-04-03T07:40:09.067Z (12 days ago)
- Topics: browser, handler, macos, menu, productivity, swift, typescript, url, xcode
- Language: Go
- Homepage:
- Size: 3.81 MB
- Stars: 3,935
- Watchers: 28
- Forks: 150
- Open Issues: 29
-
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 - Always opens the right browser. (Browser)
- awesome-swift-macos-apps - Finicky - Always opens the right browser. (Browser)
- open-source-mac-os-apps - Finicky - Always opens the right browser. </summary><p><b>Languages:</b> ![swift_icon] <br></p></details> (Applications / 🌐 Browser (13))
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 link or url. With Finicky as your default browser, you can tell it to open Facebook or Reddit in one browser, and Trello or LinkedIn in another.
- Decide what urls to open in what browser or app
- Edit urls before opening them
- Complete control over configuration using JavaScript[](https://GitHub.com/johnste/finicky/releases/)  
## Table of Contents
- [Getting started](#getting-started)
- [Example configuration](#example-configuration)
- [Documentation](#documentation)
- [Configuration tips](#configuration-tips)
- [Alternatives](#alternatives)
- [Building Finicky from source](#building-finicky-from-source)
- [License](#license)## Getting started
Download from [releases](https://github.com/johnste/finicky/releases)
Finicky 4+ is in beta, and should work for most cases. The documentation needs to be updated, but most Finicky v3 configurations should work. Supports MacOS 12+.
Finicky 3.4.0 is the latest stable release, but it is a few years old and unsupported.
## Example configuration
```js
// ~/.finicky.js
export default {
defaultBrowser: "Google Chrome",
rewrite: [
{
// Redirect all urls to use https
match: (url) => url.protocol === "http:",
url: (url) => {
url.protocol = "https:";
return url;
},
},
],
handlers: [
{
// Open apple.com and example.com urls in Safari
match: ["apple.com*", "example.com*"],
browser: "Safari",
},
{
// Open any url that includes the string "workplace" in Firefox
match: /workplace/,
browser: "Firefox",
},
{
// Open google.com and *.google.com urls in Google Chrome
match: [
"google.com*", // match google.com urls
"*.google.com*", // match google.com subdomains
],
browser: "Google Chrome",
},
],
};
```See the [documentation](#documentation) for all the features Finicky supports.
## Documentation
Finicky has extensive support for matching, rewriting and starting browsers or other application that handle urls. See the wiki for the [full configuration documentation](https://github.com/johnste/finicky/wiki/Configuration-(v3)) explaining all available, APIs and options as well as detail information on how to match on urls.
⚠️ Please note that Finicky 4 will affect the interface slightly, details to come ⚠️
## Configuration tips
See the wiki page for other [configuration tips](https://github.com/johnste/finicky/wiki/Configuration-ideas) by users of Finicky.
⚠️ Please note that Finicky 4 will affect the interface slightly, details to come ⚠️
## Alternatives
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!
## Building Finicky from source
If you'd like to build Finicky from source:
1. Install Go 1.23.4
2. Install Node 22
3. Run `./scripts/install.sh` from base folder to install dependencies
4. Run `./scripts/build.sh` from base folder to build 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)