WSLCommander
A modern Windows desktop application for managing your Windows Subsystem for Linux (WSL2) distributions
Install / Use
/learn @hpconcept/WSLCommanderREADME
WSL Commander
A modern Windows desktop application for managing your Windows Subsystem for Linux (WSL2) distributions — built with Python and PyQt6 Fluent Widgets.
Features
- 📋 View all installed WSL distributions with live status and version info
- ▶️ Launch a terminal for any distribution with a single click
- ⭐ Set a distribution as the system default
- ⏹️ Stop a running distribution
- 🗑️ Remove a distribution
- 💾 Export a distribution to a
.tararchive for backup or transfer - 📦 Install new distributions from the official online catalogue
- 📂 Import a distribution from a
.tararchive with a custom name and install location - 🔌 USB Sharing — list connected USB devices and manage their attachment to WSL
- 🎨 Modern Fluent Design UI with automatic light/dark theme support
Screenshots
Installed Distributions

Install / Import a Distribution

USB Device Management

Requirements
- Windows 10 or Windows 11 with WSL2 enabled
- usbipd-win (optional — required for USB sharing functionality)
Enable WSL2 (if not already set up)
Open an elevated PowerShell and run:
wsl --install
Restart your machine before launching WSL Commander.
Install usbipd-win (for USB sharing)
USB device sharing requires usbipd-win. Install it via winget:
winget install usbipd
Or download the installer from the usbipd-win releases page.
Note: Without
usbipd-win, the USB page will still open but no devices will be listed and attach/detach actions will not be available.
Running the Application
Option 1 — Pre-built Executable (no Python required)
- Download the latest release from the Releases page.
- Extract the zip archive.
- Run
WSLCommander.exefrom the extracted folder.
Note: The executable is self-contained. No Python or additional dependencies need to be installed.
Option 2 — Run from Source
Prerequisites: Python 3.10 or higher.
1. Clone the repository
git clone https://github.com/hpconcept/WSLCommander.git
cd WSLCommander
2. Create a virtual environment (recommended)
python -m venv .venv
.venv\Scripts\activate
3. Install dependencies
pip install -r requirements.txt
4. Run
python main.py
Building the Executable
The repository includes a PyInstaller spec file for building the standalone executable yourself.
1. Install dev dependencies
pip install -r requirements-dev.txt
2. Build
pyinstaller WSLCommander.spec --noconfirm
The output will be placed in dist\WSLCommander\WSLCommander.exe.
Project Structure
WSLCommander/
├── app/
│ ├── main_window.py # Main application window
│ ├── models/ # Data models (Distro, UsbDevice)
│ ├── pages/ # UI pages (Distributions, Install, USB)
│ ├── utils/ # Helpers (logo resolver)
│ └── workers/ # Background QThread workers (WSL, USB)
├── assets/
│ ├── distros/ # Distribution logo images
│ └── icon/ # Application icon
├── docs/
│ └── screenshots/ # Application screenshots
├── main.py # Entry point
├── requirements.txt # Runtime dependencies
├── requirements-dev.txt # Dev/build dependencies (includes PyInstaller)
├── WSLCommander.spec # PyInstaller build spec
└── README.md
Dependencies
Runtime
| Package | License | Purpose |
|---|---|---|
| PyQt6>=6.6.0 | GPLv3 / Commercial | Qt6 Python bindings |
| PyQt6-Fluent-Widgets[full]>=1.6.0 | GPLv3 (free tier) | Fluent Design UI component library |
Dev / Build
| Package | License | Purpose |
|---|---|---|
| PyInstaller | GPL + exception | Packaging into a standalone executable |
License
The source code of WSL Commander is licensed under the MIT License — see the LICENSE file for details.
The pre-built binary bundles PyQt6 and PyQt6-Fluent-Widgets, both of which are licensed under GPLv3. As a result, redistribution of the compiled binary is subject to the terms of the GNU General Public License v3.
If you require a license that is compatible with proprietary use, a commercial license for PyQt6 is available from Riverbank Computing and a commercial license for PyQt-Fluent-Widgets is available at qfluentwidgets.com.
