A Windows tray app that routes external links to the right browser based on your rules.
Hops is not a web browser. It receives http and https URLs, applies your routing rules, and launches your chosen browser.
This is a personal project, use it at your own risk. If Hops helps you, remember to star it, fork it, and use it.
About me · Twitter / X · GitHub
- Screenshots
- Features
- Hotkeys
- Installation
- Routing Logic
- Browser Detection And Manual Browser
- Windows Registry Keys Touched
- Development
- FAQ
- Pattern Examples
- License
- Route external links to different browsers using rules
- Choose a default fallback browser
- Keep Hops running from the Windows tray
- Start Hops automatically with Windows
- First-run onboarding for browser detection and Windows default-app setup
- Automatic browser detection from Windows registry entries and known install paths
- Add manual browser entries
- Hide browsers from the picker
- Open supported browsers in private mode
- Rule ordering with first-match-wins behavior
- Rule enable / disable toggles
- Pattern types: hostname, hostname + subdomains, prefix, contains, full URL, glob, and regex
- Routing preview and route-and-open test tools
- Picker window when a route needs user input
- Register and unregister Hops in Windows Default Apps
- Check whether Hops is registered for
httpandhttps - In-app update checks from GitHub Releases
Ctrl+B: collapse or expand the settings sidebarCtrl+Shiftwhile opening a link through Hops: force the picker instead of automatic routingAltin the picker: open supported browsers in private modeEscin the picker: close the pickerEscin dropdown-style settings controls: close the open control
- Download the latest Windows installer from GitHub Releases.
- Install Hops.
- Open Hops and complete onboarding.
- Click
Register Hopsso Windows lists Hops as a browser/default-app option. - Open Windows Default Apps and set both
httpandhttpsto Hops. - Optionally enable
Start with Windows.
Windows only sends external http and https link clicks to the current default app handler. If Hops is not selected as the default handler, apps like Discord, Slack, terminals, and email clients will bypass Hops.
Hops evaluates URLs in this order:
- If
Always show pickeris enabled, open the picker. - Find the first enabled matching rule.
- If the rule browser is running, open the URL in that browser.
- If the rule browser is not running and
Use defaults when browser is not already runningis enabled, use the configured default browser. - If there is no usable rule target, use the configured default browser when allowed.
- Otherwise, open the picker.
The picker opens near the cursor when Hops needs user input. It prioritizes the matched rule browser, then the default browser, then running browsers.
Hops detects browsers from Windows registry entries and common install locations. It supports mainstream Chromium, Firefox, Edge, and Opera variants, plus browsers such as Brave, Vivaldi, LibreWolf, Waterfox, Floorp, Zen, Arc, Helium, and Tor Browser.
Detected browsers and manual browsers are merged into one list. If a manual browser points to the same executable path as a detected browser, the manual entry wins and the detected duplicate is suppressed.
Manual browser entries are validated before Hops launches them:
verified: the executable is recognized as a known browser or recognized browser familyuser confirmed: the executable is unknown, but you explicitly approved it once
Hops constrains private-mode flags for recognized browser families:
- Chromium-family browsers use
--incognito - Firefox-family browsers use
--private-window - Microsoft Edge uses
--inprivate - Opera uses
--private - Tor Browser does not get an extra private-mode flag injected
Unknown executables can be added manually after confirmation, but Hops does not accept arbitrary custom private-mode flags for them.
Hops writes registration under HKCU for the current user, so admin rights are not required and rollback is local to your user profile.
When clicking Register Hops, the app writes:
HKCU\Software\Classes\HopsURLHKCU\Software\Classes\HopsHTMLHKCU\Software\Classes\HopsHKCU\Software\Hops\CapabilitiesHKCU\Software\RegisteredApplicationsvalueHops=Software\Hops\Capabilities
This does not automatically force Windows defaults. You still choose Hops in Windows Default Apps for http and https.
To rollback:
- In Windows Default Apps, switch
httpandhttpsaway from Hops. - In Hops Settings, click
Unregister Hops.
Unregister Hops removes the keys listed above from HKCU.
Requirements:
- Bun
- Rust stable
- Windows for the full desktop/default-app behavior
Install dependencies:
bun installRun the Tauri app:
bun run tauri devBuild the frontend:
bun run buildCheck the Rust app:
cargo check --manifest-path src-tauri\Cargo.tomlbun run tauri dev runs under a terminal-owned dev process. Validate no-console-window behavior with a packaged build, not only dev mode.
No. Hops is a link router. It receives URLs from Windows, applies your rules, and opens another browser.
Windows only forwards external http and https links to the current default handler. Hops must be selected there before it can route links from other apps.
No. Hops registers itself under HKCU, the current-user registry hive.
Yes. Change http and https defaults away from Hops in Windows Default Apps, then click Unregister Hops in Hops Settings.
If Use defaults when browser is not already running is enabled, Hops uses your configured default browser. Otherwise, it opens the picker.
Hops stores its config at %APPDATA%\Hops\config.json.
| Pattern type | Pattern | Example match | Notes |
|---|---|---|---|
| Hostname | github.com |
https://github.com/org/repo |
Matches the exact hostname only. |
| Hostname + subdomains | *.notion.so |
https://workspace.notion.so/page |
Matches subdomains, not the root domain. |
| Prefix | https://linear.app/myteam |
https://linear.app/myteam/issue/ENG-1 |
Good for routing one URL branch. |
| Contains | figma |
https://www.figma.com/file/123 |
Can match more than expected. |
| Full URL | https://app.example.com/a |
https://app.example.com/a |
Exact full-string match only. |
| Glob | https://jira.*/browse/ENG-* |
https://jira.example.com/browse/ENG-123 |
Supports wildcard matching. |
| Regex | ^https?://(www\.)?youtube\.com/watch |
https://youtube.com/watch?v=abc |
Most flexible, easiest to misuse. |
Hops is licensed under the MIT License. See LICENSE.




