How to uninstall Bazelisk on Windows
Bazelisk selects and downloads Bazel versions; removing it is separate from deleting source trees, Bazel output or project configuration. Keep the projects and the files that pin their build version.
Save your data and quit
Let builds finish, then close terminals still using Bazelisk. Check whether you configured BAZELISK_HOME, because the actual download directory can differ. Keep .bazelversion in each project. Removing downloaded Bazel versions can require downloading them again when another checkout next builds.
Uninstall the tested package
In Windows 11, open Settings › Apps › Installed apps, find Bazelisk, and choose Uninstall. In Windows 10, use Settings › Apps › Apps & features. Keep the installed program folder intact until its uninstaller finishes. If this was the winget package, first confirm its exact identity:
winget list --id Bazel.Bazelisk --exact
If the successful query shows the intended installation, remove that package:
winget uninstall --id Bazel.Bazelisk --exact
This follows the package’s registered removal method; portable packages use their package-manager removal instead. An error or a missing winget match is not proof that the app is absent: check the Windows app list and the original installation method. Follow any vendor confirmation or restart request after saving other work. See Microsoft’s uninstall command documentation.
Data and components to check
The following locations or components need separate decisions. A remaining folder is not automatically disposable.
| Location or component | What to keep or check |
|---|---|
%LOCALAPPDATA%\bazelisk |
The tested download directory, including its downloads child. It is optional to remove after builds stop and replacement downloads remain available. |
BAZELISK_HOME |
If set, inspect that configured location instead of assuming the default cache covers it. |
See Bazelisk’s official documentation.
Check the outcome
winget list --id Bazel.Bazelisk --exact
Test-Path -LiteralPath "$env:LOCALAPPDATA\bazelisk"
A successful package query with no matching row means that package registration was not found. A matching row means it still exists; an error leaves the result unknown. For each Test-Path, True means that exact location remains and False means it was not found; an access error does not mean it was removed. Keep deliberately retained data. Check Task Manager for a process whose executable belongs to this installation, and distinguish another version or a separate companion app before acting.
What Mole lists
Mole listed the local bazelisk directory, unselected by default. The test selected and removed it. After uninstalling outside Mole, a follow-up scan also found this directory. Project source and Bazel build output were outside the scope of these checks.
What this test covered
The winget user-scope portable package was removed. Bazelisk did not leave a persistent GUI process in this run. An actual upgrade, every custom cache location and rebuilding an offline project were not verified.
These results are from a development build of Mole. Other released builds were not individually tested.