Skip to content

mukkino/fix-browsertamer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

fix-browsertamer

PowerShell helper for setting Browser Tamer as the default browser on Windows 10/11 when Windows refuses to let the change stick.

The script handles the current Windows default-app protection layers, including UCPD, UserChoiceLatest-related feature flags, valid hash-based file association writes via PS-SFTA, Browser Tamer registry registration, Browser Tamer picker configuration, phantom browser cleanup, and full uninstall/cleanup.

It is designed to be re-runnable. If Windows Update or a Browser Tamer update breaks the association again, run the script again.

Important: run this as a normal user, not as Administrator. The script will request elevation only for the steps that need it. Running the whole script elevated can break the per-user default-browser association writes.


What it does

Modern Windows does not make programmatic default-browser changes easy. A working Browser Tamer setup now requires several coordinated fixes.

This tool can:

  1. Install or upgrade Browser Tamer via winget.
  2. Let you choose between the latest Browser Tamer version and the previous known version, 5.5.5.
  3. Correctly handle the 5.5.5 downgrade path by removing the currently installed Browser Tamer package first, because winget install --version 5.5.5 will not reliably downgrade over a newer installed version.
  4. Clean stale WinGet package folders and the WinGet\Links\bt.exe symlink before reinstalling an older Browser Tamer version.
  5. Locate bt.exe using the stable WinGet links path where possible, with fallback discovery for package folders.
  6. Register Browser Tamer as a virtual browser in the current user's registry.
  7. Create or repair the Browser Tamer ProgIds used by Windows default-app associations:
    • BrowserTamerHTM
    • BrowserTamerPDF
    • x-bt
  8. Repair incomplete third-party StartMenuInternet registrations that can cause Browser Tamer to discover phantom/broken browsers.
  9. Configure Browser Tamer's config.ini so the browser picker remains usable instead of immediately closing or behaving inconsistently.
  10. Disable the UCPD protection layer by setting the UCPD service state and disabling the UCPD velocity scheduled task.
  11. Run ViVeTool elevated only for the feature-flag step and disable these Windows feature IDs:
    • 44860385 — classic UCPD default-app protection
    • 43229420 — UserChoiceLatest / AppDefaultHashRotation
    • 27623730 — UserChoiceLatest hash migration companion flag
  12. Download and load PS-SFTA in the normal user session.
  13. Set Browser Tamer as default for:
    • http
    • https
    • .htm
    • .html
    • .shtml
    • .xht
    • .xhtml
    • .mht
    • .mhtml
    • .pdf
  14. Back up relevant registry state before changing associations.
  15. Verify the written associations after the change.
  16. Check for UserChoiceLatest mismatches and warn when a reboot/re-run may be needed.
  17. Verify Browser Tamer ProgId command integrity after PS-SFTA writes and attempt re-registration if needed.
  18. Fully uninstall Browser Tamer and the script's registry/file changes when requested.

Requirements

  • Windows 10 or Windows 11
  • PowerShell 5.1 or later
  • winget / App Installer
  • Internet access
  • A normal, non-elevated PowerShell or Command Prompt session

The script downloads:

Downloads are stored under:

%LOCALAPPDATA%\BrowserTamer-Fix

Browser Tamer configuration is stored under:

%LOCALAPPDATA%\bt\config.ini

Repository layout

fix-browsertamer/
├─ README.md
└─ fix-browsertamer/
   ├─ fix-browsertamer.bat
   └─ fix-browsertamer.ps1

Run the commands from the inner fix-browsertamer folder where the .bat and .ps1 files are located.


Usage

Batch wrapper

The easiest option is the batch wrapper:

cd fix-browsertamer
fix-browsertamer.bat

The wrapper opens a menu with:

  • Install / fix in manual mode
  • Install / fix in semi-automatic mode
  • Fully uninstall Browser Tamer
  • Fully uninstall Browser Tamer without confirmation
  • Quit

PowerShell script directly

From the folder containing fix-browsertamer.ps1:

# Show the interactive menu
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1

# Manual mode: pauses at major steps so you can read the output
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -Manual

# Semi-automatic mode: fewer pauses, but still prompts where user interaction is unavoidable
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -SemiAuto

# Full uninstall with confirmation
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -Uninstall

# Full uninstall without confirmation
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -Uninstall -SemiAuto

Browser Tamer version selection

In manual mode, the script asks which Browser Tamer version to install:

L Latest (Current Latest)
P Previous 5.5.5

Choose L for the latest version published through WinGet.

Choose P to install Browser Tamer 5.5.5.

When 5.5.5 is selected, the script first performs an app-only Browser Tamer removal. This is intentional. WinGet does not reliably downgrade an installed package when a newer version is already present, so the script removes the current package and stale WinGet paths first, then installs the pinned version.

This downgrade cleanup does not remove your Browser Tamer configuration, default-browser registration, PS-SFTA files, ViVeTool files, or the script working directory. The normal repair flow then refreshes the registry and associations against the newly installed bt.exe path.


Uninstall

The uninstall mode removes Browser Tamer and the script's changes as completely as practical.

It can remove:

  • running bt.exe processes
  • the Browser Tamer WinGet package
  • leftover Browser Tamer package folders
  • stale WinGet bt.exe links
  • Browser Tamer ProgIds under HKCU\Software\Classes
  • Browser Tamer's StartMenuInternet registration
  • the Browser Tamer value under HKCU\Software\RegisteredApplications
  • Browser Tamer UserChoice / UserChoiceLatest entries for protocols and file types where they still point to Browser Tamer
  • Browser Tamer startup entry added by the script
  • %LOCALAPPDATA%\bt
  • %LOCALAPPDATA%\BrowserTamer-Fix
  • selected HKLM\SOFTWARE\aloneguid leftovers via a self-elevated cleanup step

After uninstalling, Windows may prompt you to choose a browser the next time you open a link. You can also set one manually in:

Settings > Apps > Default apps

Notes and limitations

  • Do not run the script from an elevated PowerShell or elevated Command Prompt.
  • The script self-elevates only the UCPD and ViVeTool steps.
  • PS-SFTA association writes must happen in the normal user context.
  • Some Windows changes may require a reboot, especially if UCPD was still loaded or UserChoiceLatest was active.
  • Windows updates may re-enable protections or reset feature flags. Re-run the script if Browser Tamer stops intercepting links.
  • The script stores registry backups under %LOCALAPPDATA%\BrowserTamer-Fix\reg-backup.
  • The script includes SHA-256 verification hooks for downloaded components, but empty hash constants mean verification is skipped with a warning until hashes are filled in.
  • .svg and .webp are intentionally not assigned to Browser Tamer because they are image formats and many users prefer them to open in an image viewer/editor.

Troubleshooting

winget is missing or not responding

Install or update App Installer from the Microsoft Store, then run the script again.

Browser Tamer still does not stay as default

Reboot and run the script again. This is usually needed when UCPD or UserChoiceLatest changes were made but Windows has not fully applied them yet.

Settings does not immediately show Browser Tamer as selected

The script fires a shell association refresh, but Windows Settings can lag behind. Sign out and back in if the UI still looks stale after a successful run.

The Browser Tamer picker shows a phantom or broken browser

Run the repair again. The script scans StartMenuInternet entries and patches incomplete registrations that can cause Browser Tamer to discover a phantom browser.

You selected Browser Tamer 5.5.5 but WinGet kept the newer version

Use the current script version. The 5.5.5 path now uninstalls the current Browser Tamer package first, removes stale WinGet package/link leftovers, and then installs the pinned version.


Version notes

1.2

  • Fixed installation of the previous Browser Tamer version, 5.5.5.
  • Selecting the previous version now removes the currently installed Browser Tamer package before installing 5.5.5.
  • Added cleanup for stale WinGet Browser Tamer package folders and the WinGet\Links\bt.exe symlink before reinstalling the pinned older version.
  • Preserves Browser Tamer configuration and the normal association repair flow during the downgrade path.

1.1

  • Added full uninstall mode.
  • Added batch wrapper menu support for install/fix and uninstall workflows.
  • Added interactive script menu when no PowerShell parameters are provided.

Disclaimer

This script modifies registry keys, changes Windows default-app associations, disables a Windows protection driver, disables internal Windows feature flags, and uses third-party tools.

Use it only if you understand what it is doing. There is no warranty. You run it at your own risk.

For background and explanation, read the full guide:

Fixing Browser Tamer issues in Windows


License

Released under The Unlicense.

About

Make BrowserTamer stick as default on Windows 10/11: UCPD, UserChoiceLatest, PS-SFTA, registration fixes, phantom-browser cleanup, and uninstall.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors