wingetsilent-installnotepad-plus-pluseditortutorial

How to Install Notepad++ Silently with winget on Windows

Install Notepad++ silently with winget — single-line command for unattended deployments, plugin manager auto-install, and uninstall flags.

· 4 min read · updated May 29, 2026
How to Install Notepad++ Silently with winget on Windows

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

Continue reading