How to uninstall Deno on Windows
Deno keeps nothing of yours outside your projects: your scripts, deno.json files and lockfiles live in the project folders you made, and uninstalling Deno never touches them. What it does keep is a download cache of remote modules and npm packages, which comes back on its own the next time you run a project. This guide covers Deno installed per-user from the DenoLand.Deno winget package, which puts the single deno.exe in winget's own package folder.
Stop anything Deno is running
Stop any deno run, deno task or deno serve still running in a terminal, and close editors whose Deno language server is active. Check Task Manager (Ctrl+Shift+Esc) for any deno.exe still listed before you uninstall.
Remove Deno with winget
Deno from winget is a portable package: winget unpacked it and keeps track of it, so remove it the same way:
winget uninstall --id DenoLand.Deno
You can also find Deno in Settings › Apps › Installed apps and choose Uninstall, which runs the same winget removal.
Where the data lives
| Location | What it holds | What to do |
|---|---|---|
%LOCALAPPDATA%\Microsoft\WinGet\Packages\DenoLand.Deno_Microsoft.Winget.Source_8wekyb3d8bbwe |
deno.exe itself |
winget removes it |
%LOCALAPPDATA%\deno |
Cached remote modules, npm packages and compiled code | Safe to remove; Deno downloads what a project needs again |
Check the result
Run these read-only commands after the uninstall finishes:
Get-Process deno -ErrorAction SilentlyContinue
winget list --id DenoLand.Deno
Get-Command deno -ErrorAction SilentlyContinue
Test-Path "$env:LOCALAPPDATA\deno"
- No output from
Get-Processonly means this query observed no matching process; a suppressed error leaves the running state unknown. A listed process means a script or language server is still open. - A completed
winget listquery with no match means the package record is gone; a matching row means the uninstall did not finish. - If
Get-Commandsucceeds without suppressed errors, no output meansdenois no longer on your PATH. A result means another copy is still installed somewhere, for example from a different installer; its path tells you where. Test-PathreturningTruemeans the module cache is still there, which is expected unless you removed it yourself;Falsemeans it is gone.
If you installed it with winget
For portable packages like this one, winget documents --purge, which also deletes everything in the package folder, including files created there after the install:
winget uninstall --id DenoLand.Deno --purge
It does not touch %LOCALAPPDATA%\deno.
What Mole lists
For Deno installed per-user from winget:
- Mole removes Deno through winget, which takes
deno.exeand its package folder with it. %LOCALAPPDATA%\deno, the module cache, is listed but not selected.- Your project folders are not part of this list.
What this test covered
Tested on September 28, 2026 with Deno 2.9.7 installed through winget, per-user scope, and removed through winget. The listed cache folder was ticked and removed in this test. Not verified: a cache filled by real projects, or a copy of Deno installed with Deno's own install script.
