✓ Verified 🌐 Web Scrapers ✓ Enhanced Data

Pc Master

Control the Windows PC from WSL2.

Rating
4.4 (212 reviews)
Downloads
32,418 downloads
Version
1.0.0

Overview

Control the Windows PC from WSL2.

Complete Documentation

View Source →

PC Master — Windows Control from WSL2

All Windows binaries are accessible via /mnt/c/Windows/System32/. Call them directly from bash.

Prerequisites

WSL2 interop must be working. If .exe calls fail with UtilAcceptVsock errors, ask the user to run wsl --shutdown in Windows and relaunch WSL.

Core Commands

Processes

bash
# List all processes
/mnt/c/Windows/System32/tasklist.exe

# Filter by name
/mnt/c/Windows/System32/tasklist.exe /FI "IMAGENAME eq chrome.exe"

# Kill by name
/mnt/c/Windows/System32/taskkill.exe /F /IM chrome.exe

# Kill by PID
/mnt/c/Windows/System32/taskkill.exe /F /PID 1234

Launch Applications

bash
# Open a URL in default browser
/mnt/c/Windows/System32/cmd.exe /c "start https://google.com"

# Open an app by name
/mnt/c/Windows/System32/cmd.exe /c "start chrome"
/mnt/c/Windows/System32/cmd.exe /c "start spotify"
/mnt/c/Windows/System32/cmd.exe /c "start notepad"

# Open a file with its default app
/mnt/c/Windows/System32/cmd.exe /c "start C:\\Users\\User\\file.pdf"

# Launch full path
/mnt/c/Windows/System32/cmd.exe /c "start \"\" \"C:\\Program Files\\App\\app.exe\""

⚠️ cmd.exe /c start must be run from a Windows path. Use /mnt/c/Windows/System32/cmd.exe /c "cd /d C:\ && start ..." if cwd is a UNC path (WSL path).

PowerShell (advanced)

bash
PS=/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe

# Run a command
$PS -NonInteractive -Command "Get-Process | Select-Object -First 10"

# Get window titles
$PS -NonInteractive -Command "Get-Process | Where-Object {$_.MainWindowTitle} | Select-Object Name, MainWindowTitle"

# Set volume
$PS -NonInteractive -Command "(New-Object -ComObject WScript.Shell).SendKeys([char]174)"

Screenshot

bash
# Take a screenshot and save to Windows desktop
PS=/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
$PS -NonInteractive -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::PrimaryScreen | ForEach-Object { \$bmp = New-Object System.Drawing.Bitmap(\$_.Bounds.Width, \$_.Bounds.Height); \$g = [System.Drawing.Graphics]::FromImage(\$bmp); \$g.CopyFromScreen(\$_.Bounds.Location, [System.Drawing.Point]::Empty, \$_.Bounds.Size); \$bmp.Save('C:\\screenshot.png') }"

File System (Windows paths)

bash
# Windows C:\ is at /mnt/c/ in WSL
ls /mnt/c/Users/
cat /mnt/c/Users/Username/Desktop/file.txt
cp /mnt/c/Users/Username/Downloads/file.zip /mnt/c/Users/Username/Desktop/

# Find Windows username
ls /mnt/c/Users/ | grep -v "Public\|Default\|All Users"

System Info

bash
# Windows version
/mnt/c/Windows/System32/cmd.exe /c "ver"

# Disk usage
/mnt/c/Windows/System32/cmd.exe /c "wmic logicaldisk get size,freespace,caption"

# Network info
/mnt/c/Windows/System32/ipconfig.exe

Common Patterns

Close and reopen an app:

bash
/mnt/c/Windows/System32/taskkill.exe /F /IM chrome.exe
sleep 2
/mnt/c/Windows/System32/cmd.exe /c "start chrome"

Check if app is running:

bash
/mnt/c/Windows/System32/tasklist.exe /FI "IMAGENAME eq spotify.exe" | grep -i spotify && echo "Running" || echo "Not running"

Open a specific website:

bash
/mnt/c/Windows/System32/cmd.exe /c "start https://www.google.com"

Notes

  • Output may contain garbled characters (Windows encoding vs UTF-8) — this is normal, content is still readable
  • Some GUI apps launched via start won't produce output — that's expected
  • For interactive PowerShell scripts, write to a temp file and read it back instead of capturing stdout directly
  • See references/windows-apps.md for common app executable names

Installation

Terminal bash

openclaw install pc-master
    
Copied!

💻Code Examples

### Processes

-processes.sh
# List all processes
/mnt/c/Windows/System32/tasklist.exe

# Filter by name
/mnt/c/Windows/System32/tasklist.exe /FI "IMAGENAME eq chrome.exe"

# Kill by name
/mnt/c/Windows/System32/taskkill.exe /F /IM chrome.exe

# Kill by PID
/mnt/c/Windows/System32/taskkill.exe /F /PID 1234

### Launch Applications

-launch-applications.sh
# Open a URL in default browser
/mnt/c/Windows/System32/cmd.exe /c "start https://google.com"

# Open an app by name
/mnt/c/Windows/System32/cmd.exe /c "start chrome"
/mnt/c/Windows/System32/cmd.exe /c "start spotify"
/mnt/c/Windows/System32/cmd.exe /c "start notepad"

# Open a file with its default app
/mnt/c/Windows/System32/cmd.exe /c "start C:\\Users\\User\\file.pdf"

# Launch full path
/mnt/c/Windows/System32/cmd.exe /c "start \"\" \"C:\\Program Files\\App\\app.exe\""

### PowerShell (advanced)

-powershell-advanced.sh
PS=/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe

# Run a command
$PS -NonInteractive -Command "Get-Process | Select-Object -First 10"

# Get window titles
$PS -NonInteractive -Command "Get-Process | Where-Object {$_.MainWindowTitle} | Select-Object Name, MainWindowTitle"

# Set volume
$PS -NonInteractive -Command "(New-Object -ComObject WScript.Shell).SendKeys([char]174)"

### Screenshot

-screenshot.sh
# Take a screenshot and save to Windows desktop
PS=/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
$PS -NonInteractive -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::PrimaryScreen | ForEach-Object { \$bmp = New-Object System.Drawing.Bitmap(\$_.Bounds.Width, \$_.Bounds.Height); \$g = [System.Drawing.Graphics]::FromImage(\$bmp); \$g.CopyFromScreen(\$_.Bounds.Location, [System.Drawing.Point]::Empty, \$_.Bounds.Size); \$bmp.Save('C:\\screenshot.png') }"

### File System (Windows paths)

-file-system-windows-paths.sh
# Windows C:\ is at /mnt/c/ in WSL
ls /mnt/c/Users/
cat /mnt/c/Users/Username/Desktop/file.txt
cp /mnt/c/Users/Username/Downloads/file.zip /mnt/c/Users/Username/Desktop/

# Find Windows username
ls /mnt/c/Users/ | grep -v "Public\|Default\|All Users"

### System Info

-system-info.sh
# Windows version
/mnt/c/Windows/System32/cmd.exe /c "ver"

# Disk usage
/mnt/c/Windows/System32/cmd.exe /c "wmic logicaldisk get size,freespace,caption"

# Network info
/mnt/c/Windows/System32/ipconfig.exe

**Close and reopen an app:**

close-and-reopen-an-app.sh
/mnt/c/Windows/System32/taskkill.exe /F /IM chrome.exe
sleep 2
/mnt/c/Windows/System32/cmd.exe /c "start chrome"

Tags

#browser_and-automation

Quick Info

Category Web Scrapers
Model Claude 3.5
Complexity One-Click
Author amirgu
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install pc-master