Control the Windows PC from WSL2. Use when the user asks to open/close applications, manage processes, take screenshots, control windows, manage files on Windows (C:\\), automate tasks, or do anything that requires interacting with the Windows host from WSL2 (e.g. \"open Chrome\", \"kill Spotify\", \"take a screenshot\", \"list running apps\", \"move a file on Windows\").
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill pc-master --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pc Master?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-pc-master)More formats (shields.io, HTML) on the badges page.
---
name: pc-master
description: "Control the Windows PC from WSL2. Use when the user asks to open/close applications, manage processes, take screenshots, control windows, manage files on Windows (C:\\), automate tasks, or do anything that requires interacting with the Windows host from WSL2 (e.g. \"open Chrome\", \"kill Spotify\", \"take a screenshot\", \"list running apps\", \"move a file on Windows\")."
---
# 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
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!