WSL Manager is a portable Windows application for managing Windows Subsystem for Linux distributions from a terminal interface.
It provides a simple TUI to inspect installed distributions, launch and control them, manage WSL versions, import and export root filesystem images, inspect WSL diagnostics, and browse available online distributions.
- Browse installed WSL distributions and their state, default status, and WSL version.
- Launch a selected distribution in Windows Terminal or a fallback console window.
- Stop a distribution, set the default distribution, or unregister it.
- Convert a distribution to WSL 2.
- Export a distribution to a tar archive.
- Import a custom root filesystem tarball as a new distribution.
- Browse and install distributions from the online WSL catalog.
- View WSL status, version information, and
.wslconfigavailability. - Show the selected distro's process list with
F9. - Scroll the process list with
UpandDown, stop a selected process withKorX, and refresh the list immediately. - Run WSL shutdown, update, and rollback operations from the Lifecycle screen.
- Use keyboard navigation, function-key shortcuts, and mouse interaction.
- Adapt the console layout to the available screen size.
- Windows 10 or Windows 11 with WSL installed.
wsl.exeavailable on the system.- A real interactive Windows Terminal or ConHost session for keyboard and mouse input.
- Windows Terminal is recommended for the best rendering experience.
Administrative rights may be required for some WSL operations, depending on the operation and the local Windows configuration.
The application is portable. It is meant to be that way. No fancy installer or pretty install boxes. You can run it directly from a USB drive, project directory, tools folder, or any other location.
To run WSL Manager from any PowerShell, CrossShellZSH/TCSH/KSH shell session, or Command Prompt window, place wslmgr.exe in a directory on your PATH, or add its directory to PATH.
For example, create a personal command-line tools directory and add it to the user PATH:
New-Item -ItemType Directory -Force "$HOME\bin" | Out-Null
Copy-Item .\wslmgr.exe "$HOME\bin\wslmgr.exe"
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\bin",
"User"
)Open a new terminal after changing PATH, then start the application from anywhere:
wslmgrAdding the executable to PATH is optional. The application remains portable when run directly from its location folder.
| Key | Action |
|---|---|
Up / Down |
Select a distro or scroll the process list |
Left / Right |
Move between tabs |
Enter / Space |
Activate the selected action |
F7 |
Show or hide the framed full Diagnostics view |
F8 |
Open Lifecycle / Service |
F9 |
Show or hide the Diagnostics process list |
K / X |
Stop the selected diagnostic process |
1 - 6 |
Open a tab |
R |
Refresh the current data view |
Q |
Exit |
| Mouse | Select tabs and distro rows; double-click a distro to launch it |
The project is a single C++ source file. Thats how I roll. Build it with Visual Studio or VS Code with the MSVC Build Tools or from a Developer PowerShell or Developer Command Prompt.
wslmgr.cpp Application source
wslmgr.exe Portable Windows executable
LICENSE.md BSD 3-Clause license
README.md Project documentation
WSL Manager is distributed under the BSD 3-Clause License. See LICENSE.md.