| name | Parallels VM Control |
| description | Manage Parallels Desktop VMs — list, start, stop, suspend, resume, execute commands inside guests, snapshots, file transfer, and VM configuration. Uses prlctl, prlcopy, and prlsrvctl CLIs.
<example>
Context: User wants to see VM status
user: "what VMs do I have?"
</example>
<example>
Context: User wants to start Windows
user: "start the Windows VM"
</example>
<example>
Context: User wants to run a command in the VM
user: "run ipconfig in Windows"
</example>
<example>
Context: User wants to take a snapshot
user: "snapshot the Windows VM"
</example>
<example>
Context: User wants to copy a file to the VM
user: "copy this file to Windows"
</example>
<example>
Context: User mentions Parallels or a VM
user: "suspend Windows"
</example>
<example>
Context: User wants to check what's running in the VM
user: "what's running on Windows?"
</example>
|
| version | 1.0.0 |
Parallels VM Control
Manage Parallels Desktop VMs from the CLI via prlctl, prlcopy, and prlsrvctl.
Known VMs
| Name | UUID | Notes |
|---|
| Windows 11 | {be561976-04ce-476e-9d71-0af45380dd18} | Primary Windows VM |
Quick Reference
VM Lifecycle
prlctl list -a
prlctl list -a -f
prlctl list -i "Windows 11"
prlctl list -a -j
Power Operations
prlctl start "Windows 11"
prlctl suspend "Windows 11"
prlctl pause "Windows 11"
prlctl resume "Windows 11"
prlctl stop "Windows 11"
prlctl stop "Windows 11" --kill
prlctl restart "Windows 11"
prlctl status "Windows 11"
Execute Commands Inside VM
Requires Parallels Tools installed in the guest.
prlctl exec "Windows 11" cmd /c "dir C:\\"
prlctl exec "Windows 11" powershell -Command "Get-Process | Select-Object -First 10"
prlctl exec "Windows 11" --user Administrator --password "pass" cmd /c "whoami"
prlctl exec "Windows 11" cmd /c "ipconfig"
prlctl exec "Windows 11" powershell -Command "Get-Process | Sort-Object CPU -Descending | Select-Object -First 20"
prlctl exec "Windows 11" powershell -Command "Get-PSDrive -PSProvider FileSystem"
prlctl exec "Windows 11" cmd /c "systeminfo"
File Transfer
prlcopy upload /path/to/local/file.txt C:\\Users\\chi\\Desktop\\
prlcopy upload /path/to/script.ps1 --exec "powershell -ExecutionPolicy Bypass -File script.ps1"
prlcopy download C:\\Users\\chi\\Documents\\file.txt /tmp/
prlcopy upload /path/to/file --vm "Windows 11" C:\\Users\\chi\\Desktop\\
Snapshots
prlctl snapshot "Windows 11" -n "clean-state" -d "Fresh install, all updates applied"
prlctl snapshot-list "Windows 11" -t
prlctl snapshot-list "Windows 11" -j
prlctl snapshot-list "Windows 11" -i "{snapshot-uuid}"
prlctl snapshot-switch "Windows 11" -i "{snapshot-uuid}"
prlctl snapshot-delete "Windows 11" -i "{snapshot-uuid}"
VM Configuration
prlctl set "Windows 11" cpus --number 4
prlctl set "Windows 11" memory --size 8192
prlctl list -i "Windows 11"
Server Management
prlsrvctl info
prlsrvctl info | grep "VM home"
Patterns
Start VM, Run Command, Get Output
STATUS=$(prlctl status "Windows 11" | awk '{print $NF}')
if [ "$STATUS" != "running" ]; then
prlctl start "Windows 11"
sleep 10
fi
prlctl exec "Windows 11" cmd /c "your-command"
Safe Snapshot Before Risky Operations
prlctl snapshot "Windows 11" -n "pre-change-$(date +%Y%m%d-%H%M%S)"
Notes
- VM names with spaces must be quoted:
"Windows 11"
prlctl exec requires Parallels Tools installed in the guest
start works for both stopped and suspended VMs
suspend saves state; stop shuts down; stop --kill force-kills
prlcopy auto-starts a stopped VM if needed
- Guest paths use Windows backslash notation:
C:\\Users\\...
- For long-running guest commands, consider
prlctl exec with timeout awareness