Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wslman

WSL Manager

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.

Features

  • 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 .wslconfig availability.
  • Show the selected distro's process list with F9.
  • Scroll the process list with Up and Down, stop a selected process with K or X, 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.

Requirements

  • Windows 10 or Windows 11 with WSL installed.
  • wsl.exe available 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.

Usage

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.

Optional system-wide use

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:

wslmgr

Adding the executable to PATH is optional. The application remains portable when run directly from its location folder.

Controls

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

Building

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.

Project Layout

wslmgr.cpp       Application source
wslmgr.exe       Portable Windows executable
LICENSE.md       BSD 3-Clause license
README.md        Project documentation

License

WSL Manager is distributed under the BSD 3-Clause License. See LICENSE.md.

Releases

Packages

Contributors

Languages