Fixing Browser Tamer Issues in Windows
Browser Tamer Working Again on Windows (for the moment)
The Problem
I loved Browser Tamer. If you don’t know it, it’s a small tool that sits between Windows and your browsers. When you click a link anywhere on your system, Browser Tamer catches it first and lets you decide which browser should open it.
If you use multiple browsers (for example work, personal, testing, or different profiles), it’s incredibly useful.
For years the process was simple: download the installer, install it, set it as the default browser, done.
Then things changed.
At some point the classic installer stopped being distributed. Browser Tamer itself didn’t disappear — the developer simply stopped producing the traditional installer package and instead distributes the application as a .zip or through winget (the Windows package manager).
I switched to the winget version, but it started giving me problems. Links would not always open through Browser Tamer, settings sometimes reverted, and Windows increasingly resisted letting Browser Tamer become the real default handler.
That’s when I realized the issue was not Browser Tamer itself.
The real issue was Windows.
Why Windows Makes This Difficult
Modern versions of Windows include several mechanisms designed to prevent programs from silently changing default applications.
The official explanation from Microsoft is security: malware could otherwise change your browser or file associations without your consent.
That explanation makes sense on the surface.
However the side effect is that legitimate tools — including utilities like Browser Tamer — have a much harder time registering themselves as default handlers.
Some of the technologies involved include:
- UserChoice – the registry location where Windows stores default app selections.
- UserChoice hash protection – a cryptographic hash that prevents direct registry editing.
- UCPD (User Choice Protection Driver) – a Windows driver that blocks unauthorized changes.
- UserChoiceLatest – a newer system introduced in recent Windows builds that uses a different hash format.
All of these together make default application changes harder to perform programmatically.
After some experimentation, I figured out a method to get Browser Tamer working again (for the moment).
This guide explains my findings and what I did
The Tools I Use
Browser Tamer
This is the application we ultimately want to use. It intercepts web links and routes them to the browser we choose.
Website:
https://www.aloneguid.uk/projects/bt/
winget
winget is Microsoft’s official Windows package manager. It allows installing and updating applications from the command line.
I use it to install Browser Tamer.
ViVeTool
ViVeTool is a utility that allows enabling or disabling hidden Windows feature flags.
Windows uses feature flags internally to test and gradually roll out new features. ViVeTool allows controlling them manually.
In this guide I use it to disable specific Windows protections that interfere with default browser configuration.
Download:
https://github.com/thebookisclosed/ViVe/releases
PS-SFTA
PS-SFTA is a PowerShell module that can correctly set Windows file and protocol associations by generating the required hash values.
Windows refuses association changes without the correct hash, so this tool performs the necessary calculation.
Download:
https://github.com/DanysysTeam/PS-SFTA
⚠️ Important Warnings Before Starting
This guide modifies Windows configuration.
While the procedure is safe if performed carefully, several steps interact with sensitive parts of the operating system.
- Some steps modify the Windows registry.
- Some steps require administrator privileges.
- Future Windows updates may revert some of these changes.
The method described in this article is not an official or supported procedure. It is simply the approach I arrived at through research, testing, and experimentation on my own systems. I cannot guarantee that it is the only correct way to achieve this result, nor that it will work in every Windows configuration.
Some of the steps modify system settings and interact with internal Windows mechanisms that are not intended to be user-configurable. Because of that, behavior may change with future Windows updates, and the procedure may stop working or require adjustments.
If you choose to follow this guide, you do so entirely at your own risk and responsibility. Make sure you understand each step before performing it and take appropriate precautions, such as backing up relevant settings or creating a restore point beforehand.
Step 1 – Install Browser Tamer
Open a normal PowerShell or Command Prompt window.
winget install --id aloneguid.bt -e --accept-source-agreements --accept-package-agreements
This installs the latest version of Browser Tamer.
If it is already installed, winget will simply update it.
Step 2 – Launch Browser Tamer Once
After installation, run Browser Tamer once and close it.
This creates its configuration file in:
%LOCALAPPDATA%\bt\config.ini
This file stores Browser Tamer settings.
Step 3 – Configure the Browser Picker
Open the file:
%LOCALAPPDATA%\bt\config.ini
Find or add the following section:
[picker]
always = y
This forces Browser Tamer to always show the browser picker when opening links.
Important: Browser Tamer must be closed before editing this file.
Step 4 – Register Browser Tamer as a Browser
Windows must know Browser Tamer exists as a valid browser handler.
This step registers Browser Tamer in the Windows registry so it appears in the list of browsers.
After this step you should be able to see Browser Tamer under:
Settings → Apps → Default Apps
Step 5 – Backup Existing Associations
Before modifying any associations I export the current registry entries.
The keys I back up include:
HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http
HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https
This provides a rollback point if something goes wrong.
Step 6 – Disable the UCPD Driver
This step requires administrator privileges.
Open an elevated PowerShell window and run:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\UCPD" /v Start /t REG_DWORD /d 4 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\UCPD" /v FeatureV2 /t REG_DWORD /d 0 /f
These values disable the User Choice Protection Driver.
Danger: This modifies system-level protections designed to prevent unauthorized default application changes.
Step 7 – Disable the UCPD Scheduled Task
Windows includes a scheduled task that can re-enable UCPD automatically.
To disable it run:
schtasks /change /Disable /TN "\Microsoft\Windows\AppxDeploymentClient\UCPD velocity"
If this step is skipped, Windows may undo previous changes after reboot.
Step 8 – Disable Feature Flags Using ViVeTool
Open an elevated PowerShell in the folder where ViVeTool is located.
Run:
ViVeTool.exe /disable /id:44860385
ViVeTool.exe /disable /id:43229420
ViVeTool.exe /disable /id:27623730
These flags disable mechanisms related to default app hash rotation and UserChoiceLatest.
Danger: ViVeTool modifies hidden Windows feature flags. Only change the specific flags described here.
Step 9 – Set Browser Associations
Now open PowerShell as your normal user.
Load PS-SFTA:
. "C:\path\to\SFTA.ps1"
Then set protocol associations:
Set-PTA BrowserTamerHTM http
Set-PTA BrowserTamerHTM https
Then set file type associations:
Register-FTA "C:\path\to\bt.exe" .html -ProgId BrowserTamerHTM
Register-FTA "C:\path\to\bt.exe" .htm -ProgId BrowserTamerHTM
Register-FTA "C:\path\to\bt.exe" .pdf -ProgId BrowserTamerPDF
This writes the correct UserChoice entries including the required hash values.
Step 10 – Verify
Verify the associations using:
Get-PTA http
Get-PTA https
Get-FTA .html
Get-FTA .pdf
They should return BrowserTamerHTM or BrowserTamerPDF.
Finally reboot and test opening links.
If everything worked correctly, Browser Tamer will intercept them and show the browser picker.
Final Thoughts
The surprising thing I discovered through this process is that Browser Tamer itself was never the real problem.
The real issue was how aggressively modern Windows protects default application settings.
While the goal of preventing malicious software from hijacking browser settings is understandable, it also makes legitimate customization much harder.
Once everything is configured, Browser Tamer works exactly as it used to — letting you decide which browser opens every link (for the moment).
