Notepad++ is the everyman's text editor on Windows — fast, free, never crashes, and handles 1 GB files Notepad couldn't dream of. Here's how to silently deploy it across machines.
TL;DR
Open Terminal as Administrator:
winget install --id Notepad++.Notepad++ -e --silent --accept-package-agreements --accept-source-agreements
Notepad++ installs to C:\Program Files\Notepad++. ~10 seconds. Admin required.
What gets installed
| Field | Value |
|---|---|
| Package ID | Notepad++.Notepad++ |
| Publisher | Notepad++ Team |
| Installer type | NSIS (Nullsoft) |
| License | GPL-3.0-or-later |
| Latest version | 8.9.5 (May 2026) |
| Homepage | notepad-plus-plus.org |
| Default install path | C:\Program Files\Notepad++ |
Don Ho's editor remains free, GPL-licensed, and updated regularly. The installer is a clean NSIS package with optional components for context menu integration and plugins.
Customise with NSIS components
Notepad++'s NSIS installer accepts /COMPONENTS= overrides:
winget install --id Notepad++.Notepad++ -e --override "/S /COMPONENTS=Notepad++,Plugins,Themes,Localization,ContextMenu,AutoUpdater"
Available components:
| Component | What it includes |
|---|---|
Notepad++ |
Core editor (required) |
Plugins |
Plugin Manager + bundled plugins |
Themes |
Theme files for the UI |
Localization |
Translations (90+ languages) |
ContextMenu |
Right-click "Edit with Notepad++" |
AutoUpdater |
Built-in updater (gup.exe) |
ShortcutOnDesktop |
Desktop shortcut |
AltStyleToolbar |
Alternative toolbar |
To install everything except the auto-updater (leaves winget in charge of updates):
winget install --id Notepad++.Notepad++ -e --override "/S /COMPONENTS=Notepad++,Plugins,Themes,Localization,ContextMenu"
Per-user install
Notepad++ doesn't officially support --scope user. It always installs to Program Files. If you need a portable per-user variant:
winget install --id Notepad++.Notepad++.Portable -e --silent
The portable variant extracts to wherever you point it and writes config alongside the EXE — no admin, no registry.
Pre-deploy team settings
Notepad++ reads config.xml and shortcuts.xml from its install folder (or from %APPDATA%\Notepad++ for per-user overrides). Drop a team-standard config:
$configPath = "C:\Program Files\Notepad++\config.xml"
@'
<?xml version="1.0" encoding="UTF-8" ?>
<NotepadPlus>
<GUIConfigs>
<GUIConfig name="Auto-detection">yes</GUIConfig>
<GUIConfig name="ScintillaPrimaryView" fontName="Cascadia Code" fontSize="11" />
<GUIConfig name="Tabbar" dragAndDrop="yes" drawTopBar="yes" />
<GUIConfig name="Indent" autoIndent="yes" smartIndent="yes" />
</GUIConfigs>
</NotepadPlus>
'@ | Out-File -Encoding utf8 $configPath
Notepad++ picks this up on first launch. Override only the keys you care about; defaults fill the rest.
Specify version
winget install --id Notepad++.Notepad++ -e --version 8.9.4 --silent
List versions:
winget show --id Notepad++.Notepad++ --versions
To freeze on a major version:
winget pin add --id Notepad++.Notepad++ --version "8.9.*"
See winget pin guide.
Install plugins programmatically
Notepad++ plugins live in C:\Program Files\Notepad++\plugins\<PluginName>\<PluginName>.dll. After install, you can drop plugin DLLs:
# Example: install JSON Viewer plugin
$pluginDir = "C:\Program Files\Notepad++\plugins\JSONViewer"
New-Item -ItemType Directory -Path $pluginDir -Force | Out-Null
# Download from GitHub release
Invoke-WebRequest -Uri "https://github.com/kapilratnani/JSON-Viewer/releases/latest/download/JSONViewer.dll" `
-OutFile "$pluginDir\JSONViewer.dll"
Notepad++ scans for plugins on launch. You can also use the in-app Plugins Admin (Plugins → Plugins Admin) interactively.
Make Notepad++ default text editor
Replace built-in Notepad globally (Windows 11 has a registry override):
# Set Notepad++ as default for .txt files
$cmd = '"C:\Program Files\Notepad++\notepad++.exe" "%1"'
New-Item -Path "HKCU:\Software\Classes\.txt" -Force | Set-ItemProperty -Name "(default)" -Value "txtfile"
New-Item -Path "HKCU:\Software\Classes\txtfile\shell\open\command" -Force | Set-ItemProperty -Name "(default)" -Value $cmd
Or use the Windows 11 Settings → Apps → Default apps → .txt → Notepad++.
Verify
& "C:\Program Files\Notepad++\notepad++.exe" -multiInst -nosession
# Or via winget:
winget list --id Notepad++.Notepad++
Upgrade silently
winget upgrade --id Notepad++.Notepad++ -e --silent --accept-package-agreements --accept-source-agreements
Notepad++ also has a built-in updater (gup.exe) that nags on launch. If you'd rather winget be the single source of update truth, leave AutoUpdater out of the install (see Components above) or disable in gup.xml.
Uninstall silently
winget uninstall --id Notepad++.Notepad++ --silent --disable-interactivity
To also wipe user config (themes, sessions, custom shortcuts):
winget uninstall --id Notepad++.Notepad++ --silent
Remove-Item "$env:APPDATA\Notepad++" -Recurse -Force -ErrorAction SilentlyContinue
In a developer-stack script
$apps = @(
"Notepad++.Notepad++",
"Microsoft.VisualStudioCode",
"Microsoft.WindowsTerminal",
"Git.Git"
)
foreach ($id in $apps) {
winget install --id $id -e --silent `
--accept-package-agreements --accept-source-agreements
}
Common errors
"Notepad++ is already installed" — force-overlay:
winget install --id Notepad++.Notepad++ -e --silent --force
0x80073D02 — Notepad++ is in use — close all Notepad++ windows:
Get-Process notepad++ -ErrorAction SilentlyContinue | Stop-Process -Force
winget upgrade --id Notepad++.Notepad++
See package in use fix.
Context menu missing after install — you skipped the ContextMenu component. Reinstall with it:
winget install --id Notepad++.Notepad++ -e --override "/S /COMPONENTS=Notepad++,ContextMenu" --force
See also
- Notepad++ on winget.tech → — full package details
- How to install VS Code silently → — heavier alternative
- Fresh Windows 11 setup → — full workflow
- Best CLI tools → — terminal companions
