{
  "schemaVersion": "1.0",
  "item": {
    "slug": "virtualboxmanager",
    "name": "Virtual Box Manager",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/0xFratex/virtualboxmanager",
    "canonicalUrl": "https://clawhub.ai/0xFratex/virtualboxmanager",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/virtualboxmanager",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=virtualboxmanager",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "LICENSE.txt",
      "SKILL.md",
      "scripts/virtualbox-utils.ts"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "virtualboxmanager",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T17:40:38.117Z",
      "expiresAt": "2026-05-17T17:40:38.117Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=virtualboxmanager",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=virtualboxmanager",
        "contentDisposition": "attachment; filename=\"virtualboxmanager-0.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "virtualboxmanager"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/virtualboxmanager"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/virtualboxmanager",
    "agentPageUrl": "https://openagent3.xyz/skills/virtualboxmanager/agent",
    "manifestUrl": "https://openagent3.xyz/skills/virtualboxmanager/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/virtualboxmanager/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "VirtualBox Skill",
        "body": "Control and manage VirtualBox virtual machines directly from openclaw using the VBoxManage command-line interface. This skill provides comprehensive VM lifecycle management, configuration, and monitoring capabilities."
      },
      {
        "title": "Prerequisites",
        "body": "VirtualBox must be installed on the host system\nVBoxManage CLI must be accessible (usually in PATH after VirtualBox installation)\nUser must have appropriate permissions to control VMs"
      },
      {
        "title": "Verify Installation",
        "body": "VBoxManage --version"
      },
      {
        "title": "Common Paths",
        "body": "Linux: /usr/bin/VBoxManage or /usr/local/bin/VBoxManage\nmacOS: /Applications/VirtualBox.app/Contents/MacOS/VBoxManage\nWindows: C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe"
      },
      {
        "title": "VM Lifecycle Management",
        "body": "Create, start, stop, pause, and delete VMs\nManage VM states (running, paused, saved, powered off)\nForce stop and ACPI shutdown options\nReset and restart VMs"
      },
      {
        "title": "Configuration Management",
        "body": "Modify VM settings (CPU, RAM, storage)\nConfigure network adapters and modes\nSet up shared folders\nManage USB device passthrough"
      },
      {
        "title": "Snapshot & Cloning",
        "body": "Create and restore snapshots\nClone existing VMs\nExport/Import appliances"
      },
      {
        "title": "Monitoring & Information",
        "body": "List all VMs and their states\nGet detailed VM information\nMonitor VM metrics and performance\nView logs and debugging info"
      },
      {
        "title": "List All VMs",
        "body": "# List all registered VMs\nVBoxManage list vms\n\n# List running VMs only\nVBoxManage list runningvms\n\n# Get detailed info about all VMs (JSON-like output)\nVBoxManage list vms --long"
      },
      {
        "title": "VM Information",
        "body": "# Get detailed info about a specific VM\nVBoxManage showvminfo \"VM_NAME\"\n\n# Get info in machine-readable format\nVBoxManage showvminfo \"VM_NAME\" --machinereadable"
      },
      {
        "title": "Start a VM",
        "body": "# Start VM with GUI\nVBoxManage startvm \"VM_NAME\"\n\n# Start VM headless (no GUI)\nVBoxManage startvm \"VM_NAME\" --type headless\n\n# Start VM with separate UI process\nVBoxManage startvm \"VM_NAME\" --type separate"
      },
      {
        "title": "Stop a VM",
        "body": "# ACPI shutdown (graceful, like pressing power button)\nVBoxManage controlvm \"VM_NAME\" acpipowerbutton\n\n# Power off (hard stop, like pulling plug)\nVBoxManage controlvm \"VM_NAME\" poweroff\n\n# Save state (hibernate)\nVBoxManage controlvm \"VM_NAME\" savestate\n\n# Pause VM\nVBoxManage controlvm \"VM_NAME\" pause\n\n# Resume paused VM\nVBoxManage controlvm \"VM_NAME\" resume\n\n# Reset VM (hard reboot)\nVBoxManage controlvm \"VM_NAME\" reset"
      },
      {
        "title": "Create a New VM",
        "body": "# Create a new VM\nVBoxManage createvm --name \"NewVM\" --register\n\n# Set OS type\nVBoxManage modifyvm \"NewVM\" --ostype \"Ubuntu_64\"\n\n# Set memory (RAM in MB)\nVBoxManage modifyvm \"NewVM\" --memory 4096\n\n# Set CPU count\nVBoxManage modifyvm \"NewVM\" --cpus 2\n\n# Create a virtual disk\nVBoxManage createhd --filename \"/path/to/NewVM.vdi\" --size 50000\n\n# Add storage controller\nVBoxManage storagectl \"NewVM\" --name \"SATA Controller\" --add sata\n\n# Attach virtual disk\nVBoxManage storageattach \"NewVM\" --storagectl \"SATA Controller\" \\\n  --port 0 --device 0 --type hdd --medium \"/path/to/NewVM.vdi\"\n\n# Attach ISO for installation\nVBoxManage storageattach \"NewVM\" --storagectl \"SATA Controller\" \\\n  --port 1 --device 0 --type dvddrive --medium \"/path/to/install.iso\""
      },
      {
        "title": "Clone a VM",
        "body": "# Full clone (all disks copied)\nVBoxManage clonevm \"SourceVM\" --name \"ClonedVM\" --register\n\n# Linked clone (uses same base disk, saves space)\nVBoxManage clonevm \"SourceVM\" --name \"LinkedVM\" --options link --register\n\n# Clone with specific snapshot\nVBoxManage clonevm \"SourceVM\" --name \"FromSnapshotVM\" \\\n  --snapshot \"SnapshotName\" --register"
      },
      {
        "title": "Delete a VM",
        "body": "# Delete VM (keep disks)\nVBoxManage unregistervm \"VM_NAME\"\n\n# Delete VM and all associated files\nVBoxManage unregistervm \"VM_NAME\" --delete"
      },
      {
        "title": "Snapshots",
        "body": "# List snapshots\nVBoxManage snapshot \"VM_NAME\" list\n\n# Take a snapshot\nVBoxManage snapshot \"VM_NAME\" take \"SnapshotName\" --description \"Description here\"\n\n# Restore a snapshot\nVBoxManage snapshot \"VM_NAME\" restore \"SnapshotName\"\n\n# Delete a snapshot\nVBoxManage snapshot \"VM_NAME\" delete \"SnapshotName\"\n\n# Restore current snapshot (go back to last snapshot)\nVBoxManage snapshot \"VM_NAME\" restorecurrent"
      },
      {
        "title": "Network Configuration",
        "body": "# List network adapters\nVBoxManage showvminfo \"VM_NAME\" | grep -A 5 \"NIC\"\n\n# Set NAT networking\nVBoxManage modifyvm \"VM_NAME\" --nic1 nat\n\n# Set bridged networking\nVBoxManage modifyvm \"VM_NAME\" --nic1 bridged --bridgeadapter1 eth0\n\n# Set host-only networking\nVBoxManage modifyvm \"VM_NAME\" --nic1 hostonly --hostonlyadapter1 vboxnet0\n\n# Port forwarding (NAT only)\nVBoxManage modifyvm \"VM_NAME\" --natpf1 \"ssh,tcp,,2222,,22\"\n\n# Remove port forwarding\nVBoxManage modifyvm \"VM_NAME\" --natpf1 delete \"ssh\"\n\n# List host-only networks\nVBoxManage list hostonlyifs\n\n# Create host-only network\nVBoxManage hostonlyif create\n\n# Configure host-only network\nVBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0"
      },
      {
        "title": "Shared Folders",
        "body": "# Add shared folder\nVBoxManage sharedfolder add \"VM_NAME\" --name \"share\" --hostpath \"/path/on/host\"\n\n# Add read-only shared folder\nVBoxManage sharedfolder add \"VM_NAME\" --name \"share\" --hostpath \"/path/on/host\" --readonly\n\n# Add with automount\nVBoxManage sharedfolder add \"VM_NAME\" --name \"share\" --hostpath \"/path/on/host\" --automount\n\n# Remove shared folder\nVBoxManage sharedfolder remove \"VM_NAME\" --name \"share\"\n\n# List shared folders\nVBoxManage showvminfo \"VM_NAME\" | grep -A 5 \"Shared Folder\""
      },
      {
        "title": "Modify VM Settings",
        "body": "# Change memory allocation\nVBoxManage modifyvm \"VM_NAME\" --memory 8192\n\n# Change CPU count\nVBoxManage modifyvm \"VM_NAME\" --cpus 4\n\n# Enable/disable VRAM (video memory)\nVBoxManage modifyvm \"VM_NAME\" --vram 128\n\n# Enable 3D acceleration\nVBoxManage modifyvm \"VM_NAME\" --accelerate3d on\n\n# Enable nested virtualization\nVBoxManage modifyvm \"VM_NAME\" --nested-hw-virt on\n\n# Set VRDE (remote desktop) port\nVBoxManage modifyvm \"VM_NAME\" --vrde on --vrdeport 3389\n\n# Change VM name\nVBoxManage modifyvm \"VM_NAME\" --name \"NewName\"\n\n# Set description\nVBoxManage modifyvm \"VM_NAME\" --description \"Production server VM\""
      },
      {
        "title": "USB Device Passthrough",
        "body": "# List USB devices\nVBoxManage list usbhost\n\n# Attach USB device to running VM\nVBoxManage controlvm \"VM_NAME\" usbattach \"UUID_OR_ADDRESS\"\n\n# Detach USB device\nVBoxManage controlvm \"VM_NAME\" usbdetach \"UUID_OR_ADDRESS\"\n\n# Add USB device filter (persistent)\nVBoxManage usbfilter add 0 --target \"VM_NAME\" --name \"FilterName\" \\\n  --vendorid \"XXXX\" --productid \"XXXX\""
      },
      {
        "title": "Export/Import Appliances",
        "body": "# Export VM to OVA/OVF\nVBoxManage export \"VM_NAME\" --output \"/path/to/export.ova\"\n\n# Export multiple VMs\nVBoxManage export \"VM1\" \"VM2\" --output \"/path/to/export.ova\"\n\n# Import appliance\nVBoxManage import \"/path/to/export.ova\"\n\n# Import with options\nVBoxManage import \"/path/to/export.ova\" --vsys 0 --vmname \"ImportedVM\""
      },
      {
        "title": "Monitoring & Metrics",
        "body": "# List available metrics\nVBoxManage metrics list\n\n# Setup metrics collection\nVBoxManage metrics setup --period 10 --samples 5 \"VM_NAME\"\n\n# Collect and display metrics\nVBoxManage metrics collect \"VM_NAME\"\n\n# Query specific metrics\nVBoxManage metrics query \"VM_NAME\" \"CPU/Load\"\nVBoxManage metrics query \"VM_NAME\" \"RAM/Usage\"\nVBoxManage metrics query \"VM_NAME\" \"Net/Rate\"\n\n# List all metrics for a VM\nVBoxManage metrics list \"VM_NAME\""
      },
      {
        "title": "Medium (Disk) Management",
        "body": "# List all virtual disks\nVBoxManage list hdds\n\n# Get disk info\nVBoxManage showhdinfo \"/path/to/disk.vdi\"\n\n# Resize virtual disk\nVBoxManage modifyhd \"/path/to/disk.vdi\" --resize 100000\n\n# Clone virtual disk\nVBoxManage clonemedium \"/path/to/source.vdi\" \"/path/to/clone.vdi\"\n\n# Compact disk (shrink)\nVBoxManage modifymedium \"/path/to/disk.vdi\" --compact\n\n# Set disk type\nVBoxManage modifymedium \"/path/to/disk.vdi\" --type normal\nVBoxManage modifymedium \"/path/to/disk.vdi\" --type immutable\nVBoxManage modifymedium \"/path/to/disk.vdi\" --type writethrough"
      },
      {
        "title": "Guest Control (Guest Additions Required)",
        "body": "# Execute command in guest\nVBoxManage guestcontrol \"VM_NAME\" run --exe \"/bin/ls\" \\\n  --username user --password pass -- -la /home\n\n# Copy file to guest\nVBoxManage guestcontrol \"VM_NAME\" copyto \\\n  --username user --password pass \\\n  \"/host/path/file.txt\" \"/guest/path/file.txt\"\n\n# Copy file from guest\nVBoxManage guestcontrol \"VM_NAME\" copyfrom \\\n  --username user --password pass \\\n  \"/guest/path/file.txt\" \"/host/path/file.txt\"\n\n# Create directory in guest\nVBoxManage guestcontrol \"VM_NAME\" mkdir \\\n  --username user --password pass \\\n  \"/home/user/newdir\"\n\n# Remove file in guest\nVBoxManage guestcontrol \"VM_NAME\" rm \\\n  --username user --password pass \\\n  \"/home/user/file.txt\"\n\n# List guest processes\nVBoxManage guestcontrol \"VM_NAME\" process list \\\n  --username user --password pass"
      },
      {
        "title": "Debugging & Logs",
        "body": "# View VM logs location\nVBoxManage showvminfo \"VM_NAME\" | grep -i log\n\n# Typical log paths:\n# Linux/macOS: ~/VirtualBox VMs/VM_NAME/Logs/\n# Windows: %USERPROFILE%\\VirtualBox VMs\\VM_NAME\\Logs\\\n\n# Debug a VM\nVBoxManage debugvm \"VM_NAME\" info item\n\n# Get VM statistics\nVBoxManage debugvm \"VM_NAME\" statistics"
      },
      {
        "title": "Quick VM Status Check",
        "body": "# Check if a specific VM is running\nVBoxManage list runningvms | grep \"VM_NAME\"\n\n# Get all VMs with their states\nVBoxManage list vms --long | grep -E \"Name:|State:\""
      },
      {
        "title": "Automated VM Startup Script",
        "body": "#!/bin/bash\n# Start VMs in headless mode\nfor vm in \"WebServer\" \"Database\" \"Cache\"; do\n  echo \"Starting $vm...\"\n  VBoxManage startvm \"$vm\" --type headless\n  sleep 10\ndone\necho \"All VMs started\""
      },
      {
        "title": "Backup Script with Snapshots",
        "body": "#!/bin/bash\nVM_NAME=\"ProductionVM\"\nDATE=$(date +%Y%m%d_%H%M%S)\nSNAPSHOT_NAME=\"Backup_$DATE\"\n\n# Create snapshot\nVBoxManage snapshot \"$VM_NAME\" take \"$SNAPSHOT_NAME\" \\\n  --description \"Automated backup $DATE\"\n\n# Keep only last 5 snapshots\nSNAPSHOTS=$(VBoxManage snapshot \"$VM_NAME\" list --machinereadable | grep SnapshotName | wc -l)\nif [ $SNAPSHOTS -gt 5 ]; then\n  OLDEST=$(VBoxManage snapshot \"$VM_NAME\" list --machinereadable | grep SnapshotName | head -1 | cut -d'\"' -f4)\n  VBoxManage snapshot \"$VM_NAME\" delete \"$OLDEST\"\nfi"
      },
      {
        "title": "Complete VM Cloning Workflow",
        "body": "#!/bin/bash\nSOURCE_VM=\"TemplateVM\"\nNEW_VM=\"DevVM_$(date +%s)\"\n\n# Ensure source is stopped\nVBoxManage controlvm \"$SOURCE_VM\" poweroff 2>/dev/null\n\n# Take a clean snapshot first\nVBoxManage snapshot \"$SOURCE_VM\" take \"PreClone\"\n\n# Clone the VM\nVBoxManage clonevm \"$SOURCE_VM\" --name \"$NEW_VM\" --register\n\n# Modify the clone\nVBoxManage modifyvm \"$NEW_VM\" --memory 2048 --cpus 2\n\n# Start the clone\nVBoxManage startvm \"$NEW_VM\" --type headless\n\necho \"Cloned VM '$NEW_VM' is now running\""
      },
      {
        "title": "Network Port Forwarding Setup",
        "body": "#!/bin/bash\nVM_NAME=\"WebServer\"\n\n# SSH access\nVBoxManage modifyvm \"$VM_NAME\" --natpf1 \"ssh,tcp,,2222,,22\"\n\n# HTTP access\nVBoxManage modifyvm \"$VM_NAME\" --natpf1 \"http,tcp,,8080,,80\"\n\n# HTTPS access\nVBoxManage modifyvm \"$VM_NAME\" --natpf1 \"https,tcp,,8443,,443\"\n\n# Verify\nVBoxManage showvminfo \"$VM_NAME\" | grep \"NIC 1 Rule\""
      },
      {
        "title": "Monitor Resource Usage",
        "body": "#!/bin/bash\nVM_NAME=\"ProductionVM\"\n\n# Setup metrics\nVBoxManage metrics setup --period 5 --samples 12 \"$VM_NAME\"\n\n# Collect for 1 minute and show results\nsleep 60\nVBoxManage metrics query \"$VM_NAME\" \"CPU/Load:RAM/Usage:Net/Rate\""
      },
      {
        "title": "VM Won't Start",
        "body": "# Check VM state\nVBoxManage showvminfo \"VM_NAME\" | grep State\n\n# Check for locked files\nVBoxManage showvminfo \"VM_NAME\" | grep -i lock\n\n# Try starting with verbose output\nVBoxManage startvm \"VM_NAME\" --type headless 2>&1"
      },
      {
        "title": "Cannot Delete VM",
        "body": "# Ensure VM is stopped\nVBoxManage controlvm \"VM_NAME\" poweroff\n\n# Check for attached media\nVBoxManage showvminfo \"VM_NAME\" | grep -E \"Storage|Medium\"\n\n# Force unregister if needed\nVBoxManage unregistervm \"VM_NAME\" --delete"
      },
      {
        "title": "Network Issues",
        "body": "# Check adapter status\nVBoxManage showvminfo \"VM_NAME\" | grep -A 10 \"NIC 1\"\n\n# Reset network adapter\nVBoxManage modifyvm \"VM_NAME\" --nic1 none\nVBoxManage modifyvm \"VM_NAME\" --nic1 nat\n\n# Verify host-only interface exists\nVBoxManage list hostonlyifs"
      },
      {
        "title": "Performance Issues",
        "body": "# Check current allocation\nVBoxManage showvminfo \"VM_NAME\" | grep -E \"Memory|CPU\"\n\n# Increase resources (VM must be stopped)\nVBoxManage modifyvm \"VM_NAME\" --memory 8192 --cpus 4\n\n# Enable hardware acceleration\nVBoxManage modifyvm \"VM_NAME\" --hwvirtex on --nestedpaging on"
      },
      {
        "title": "Important Notes",
        "body": "VM Names with Spaces: Always quote VM names containing spaces\nVBoxManage startvm \"My Production VM\"\n\n\n\nUUIDs vs Names: Both VM names and UUIDs work interchangeably\nVBoxManage startvm \"VM_NAME\"\nVBoxManage startvm \"12345678-1234-1234-1234-123456789abc\"\n\n\n\nRunning vs Stopped Operations:\n\ncontrolvm - operates on running VMs\nmodifyvm - operates on stopped VMs (mostly)\n\n\n\nHeadless Mode: Always use --type headless for server environments without GUI\n\n\nPermissions: Some operations require elevated permissions or membership in specific groups (e.g., vboxusers on Linux)\n\n\nGuest Additions: Required for:\n\nShared clipboard\nDrag and drop\nShared folders auto-mount\nGuest control commands\nSeamless mode"
      },
      {
        "title": "OS Types Reference",
        "body": "Common OS types for --ostype parameter:\n\nWindows11_64 - Windows 11 (64-bit)\nWindows10_64 - Windows 10 (64-bit)\nUbuntu_64 - Ubuntu Linux (64-bit)\nDebian_64 - Debian Linux (64-bit)\nFedora_64 - Fedora Linux (64-bit)\nArchLinux_64 - Arch Linux (64-bit)\nmacOS_ARM64 - macOS on Apple Silicon\nmacOS_128 - macOS on Intel (64-bit)\nFreeBSD_64 - FreeBSD (64-bit)\nOther_64 - Other OS (64-bit)\n\nGet full list with:\n\nVBoxManage list ostypes"
      },
      {
        "title": "Quick Reference Card",
        "body": "OperationCommandList VMsVBoxManage list vmsStart VMVBoxManage startvm \"NAME\" --type headlessStop VMVBoxManage controlvm \"NAME\" acpipowerbuttonForce StopVBoxManage controlvm \"NAME\" poweroffVM InfoVBoxManage showvminfo \"NAME\"SnapshotVBoxManage snapshot \"NAME\" take \"SnapName\"RestoreVBoxManage snapshot \"NAME\" restore \"SnapName\"CloneVBoxManage clonevm \"SRC\" --name \"NEW\" --registerDeleteVBoxManage unregistervm \"NAME\" --deleteModify RAMVBoxManage modifyvm \"NAME\" --memory 4096Modify CPUVBoxManage modifyvm \"NAME\" --cpus 2Port ForwardVBoxManage modifyvm \"NAME\" --natpf1 \"rule,tcp,,host,,guest\""
      },
      {
        "title": "Requirements",
        "body": "Required Binary: VBoxManage (part of VirtualBox installation)\nPermissions: User must have VM management permissions\nGuest Additions: Required for guest control and enhanced features"
      }
    ],
    "body": "VirtualBox Skill\n\nControl and manage VirtualBox virtual machines directly from openclaw using the VBoxManage command-line interface. This skill provides comprehensive VM lifecycle management, configuration, and monitoring capabilities.\n\nSetup\nPrerequisites\nVirtualBox must be installed on the host system\nVBoxManage CLI must be accessible (usually in PATH after VirtualBox installation)\nUser must have appropriate permissions to control VMs\nVerify Installation\nVBoxManage --version\n\nCommon Paths\nLinux: /usr/bin/VBoxManage or /usr/local/bin/VBoxManage\nmacOS: /Applications/VirtualBox.app/Contents/MacOS/VBoxManage\nWindows: C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe\nCore Capabilities\nVM Lifecycle Management\nCreate, start, stop, pause, and delete VMs\nManage VM states (running, paused, saved, powered off)\nForce stop and ACPI shutdown options\nReset and restart VMs\nConfiguration Management\nModify VM settings (CPU, RAM, storage)\nConfigure network adapters and modes\nSet up shared folders\nManage USB device passthrough\nSnapshot & Cloning\nCreate and restore snapshots\nClone existing VMs\nExport/Import appliances\nMonitoring & Information\nList all VMs and their states\nGet detailed VM information\nMonitor VM metrics and performance\nView logs and debugging info\nUsage\nList All VMs\n# List all registered VMs\nVBoxManage list vms\n\n# List running VMs only\nVBoxManage list runningvms\n\n# Get detailed info about all VMs (JSON-like output)\nVBoxManage list vms --long\n\nVM Information\n# Get detailed info about a specific VM\nVBoxManage showvminfo \"VM_NAME\"\n\n# Get info in machine-readable format\nVBoxManage showvminfo \"VM_NAME\" --machinereadable\n\nStart a VM\n# Start VM with GUI\nVBoxManage startvm \"VM_NAME\"\n\n# Start VM headless (no GUI)\nVBoxManage startvm \"VM_NAME\" --type headless\n\n# Start VM with separate UI process\nVBoxManage startvm \"VM_NAME\" --type separate\n\nStop a VM\n# ACPI shutdown (graceful, like pressing power button)\nVBoxManage controlvm \"VM_NAME\" acpipowerbutton\n\n# Power off (hard stop, like pulling plug)\nVBoxManage controlvm \"VM_NAME\" poweroff\n\n# Save state (hibernate)\nVBoxManage controlvm \"VM_NAME\" savestate\n\n# Pause VM\nVBoxManage controlvm \"VM_NAME\" pause\n\n# Resume paused VM\nVBoxManage controlvm \"VM_NAME\" resume\n\n# Reset VM (hard reboot)\nVBoxManage controlvm \"VM_NAME\" reset\n\nCreate a New VM\n# Create a new VM\nVBoxManage createvm --name \"NewVM\" --register\n\n# Set OS type\nVBoxManage modifyvm \"NewVM\" --ostype \"Ubuntu_64\"\n\n# Set memory (RAM in MB)\nVBoxManage modifyvm \"NewVM\" --memory 4096\n\n# Set CPU count\nVBoxManage modifyvm \"NewVM\" --cpus 2\n\n# Create a virtual disk\nVBoxManage createhd --filename \"/path/to/NewVM.vdi\" --size 50000\n\n# Add storage controller\nVBoxManage storagectl \"NewVM\" --name \"SATA Controller\" --add sata\n\n# Attach virtual disk\nVBoxManage storageattach \"NewVM\" --storagectl \"SATA Controller\" \\\n  --port 0 --device 0 --type hdd --medium \"/path/to/NewVM.vdi\"\n\n# Attach ISO for installation\nVBoxManage storageattach \"NewVM\" --storagectl \"SATA Controller\" \\\n  --port 1 --device 0 --type dvddrive --medium \"/path/to/install.iso\"\n\nClone a VM\n# Full clone (all disks copied)\nVBoxManage clonevm \"SourceVM\" --name \"ClonedVM\" --register\n\n# Linked clone (uses same base disk, saves space)\nVBoxManage clonevm \"SourceVM\" --name \"LinkedVM\" --options link --register\n\n# Clone with specific snapshot\nVBoxManage clonevm \"SourceVM\" --name \"FromSnapshotVM\" \\\n  --snapshot \"SnapshotName\" --register\n\nDelete a VM\n# Delete VM (keep disks)\nVBoxManage unregistervm \"VM_NAME\"\n\n# Delete VM and all associated files\nVBoxManage unregistervm \"VM_NAME\" --delete\n\nSnapshots\n# List snapshots\nVBoxManage snapshot \"VM_NAME\" list\n\n# Take a snapshot\nVBoxManage snapshot \"VM_NAME\" take \"SnapshotName\" --description \"Description here\"\n\n# Restore a snapshot\nVBoxManage snapshot \"VM_NAME\" restore \"SnapshotName\"\n\n# Delete a snapshot\nVBoxManage snapshot \"VM_NAME\" delete \"SnapshotName\"\n\n# Restore current snapshot (go back to last snapshot)\nVBoxManage snapshot \"VM_NAME\" restorecurrent\n\nNetwork Configuration\n# List network adapters\nVBoxManage showvminfo \"VM_NAME\" | grep -A 5 \"NIC\"\n\n# Set NAT networking\nVBoxManage modifyvm \"VM_NAME\" --nic1 nat\n\n# Set bridged networking\nVBoxManage modifyvm \"VM_NAME\" --nic1 bridged --bridgeadapter1 eth0\n\n# Set host-only networking\nVBoxManage modifyvm \"VM_NAME\" --nic1 hostonly --hostonlyadapter1 vboxnet0\n\n# Port forwarding (NAT only)\nVBoxManage modifyvm \"VM_NAME\" --natpf1 \"ssh,tcp,,2222,,22\"\n\n# Remove port forwarding\nVBoxManage modifyvm \"VM_NAME\" --natpf1 delete \"ssh\"\n\n# List host-only networks\nVBoxManage list hostonlyifs\n\n# Create host-only network\nVBoxManage hostonlyif create\n\n# Configure host-only network\nVBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0\n\nShared Folders\n# Add shared folder\nVBoxManage sharedfolder add \"VM_NAME\" --name \"share\" --hostpath \"/path/on/host\"\n\n# Add read-only shared folder\nVBoxManage sharedfolder add \"VM_NAME\" --name \"share\" --hostpath \"/path/on/host\" --readonly\n\n# Add with automount\nVBoxManage sharedfolder add \"VM_NAME\" --name \"share\" --hostpath \"/path/on/host\" --automount\n\n# Remove shared folder\nVBoxManage sharedfolder remove \"VM_NAME\" --name \"share\"\n\n# List shared folders\nVBoxManage showvminfo \"VM_NAME\" | grep -A 5 \"Shared Folder\"\n\nModify VM Settings\n# Change memory allocation\nVBoxManage modifyvm \"VM_NAME\" --memory 8192\n\n# Change CPU count\nVBoxManage modifyvm \"VM_NAME\" --cpus 4\n\n# Enable/disable VRAM (video memory)\nVBoxManage modifyvm \"VM_NAME\" --vram 128\n\n# Enable 3D acceleration\nVBoxManage modifyvm \"VM_NAME\" --accelerate3d on\n\n# Enable nested virtualization\nVBoxManage modifyvm \"VM_NAME\" --nested-hw-virt on\n\n# Set VRDE (remote desktop) port\nVBoxManage modifyvm \"VM_NAME\" --vrde on --vrdeport 3389\n\n# Change VM name\nVBoxManage modifyvm \"VM_NAME\" --name \"NewName\"\n\n# Set description\nVBoxManage modifyvm \"VM_NAME\" --description \"Production server VM\"\n\nUSB Device Passthrough\n# List USB devices\nVBoxManage list usbhost\n\n# Attach USB device to running VM\nVBoxManage controlvm \"VM_NAME\" usbattach \"UUID_OR_ADDRESS\"\n\n# Detach USB device\nVBoxManage controlvm \"VM_NAME\" usbdetach \"UUID_OR_ADDRESS\"\n\n# Add USB device filter (persistent)\nVBoxManage usbfilter add 0 --target \"VM_NAME\" --name \"FilterName\" \\\n  --vendorid \"XXXX\" --productid \"XXXX\"\n\nExport/Import Appliances\n# Export VM to OVA/OVF\nVBoxManage export \"VM_NAME\" --output \"/path/to/export.ova\"\n\n# Export multiple VMs\nVBoxManage export \"VM1\" \"VM2\" --output \"/path/to/export.ova\"\n\n# Import appliance\nVBoxManage import \"/path/to/export.ova\"\n\n# Import with options\nVBoxManage import \"/path/to/export.ova\" --vsys 0 --vmname \"ImportedVM\"\n\nMonitoring & Metrics\n# List available metrics\nVBoxManage metrics list\n\n# Setup metrics collection\nVBoxManage metrics setup --period 10 --samples 5 \"VM_NAME\"\n\n# Collect and display metrics\nVBoxManage metrics collect \"VM_NAME\"\n\n# Query specific metrics\nVBoxManage metrics query \"VM_NAME\" \"CPU/Load\"\nVBoxManage metrics query \"VM_NAME\" \"RAM/Usage\"\nVBoxManage metrics query \"VM_NAME\" \"Net/Rate\"\n\n# List all metrics for a VM\nVBoxManage metrics list \"VM_NAME\"\n\nMedium (Disk) Management\n# List all virtual disks\nVBoxManage list hdds\n\n# Get disk info\nVBoxManage showhdinfo \"/path/to/disk.vdi\"\n\n# Resize virtual disk\nVBoxManage modifyhd \"/path/to/disk.vdi\" --resize 100000\n\n# Clone virtual disk\nVBoxManage clonemedium \"/path/to/source.vdi\" \"/path/to/clone.vdi\"\n\n# Compact disk (shrink)\nVBoxManage modifymedium \"/path/to/disk.vdi\" --compact\n\n# Set disk type\nVBoxManage modifymedium \"/path/to/disk.vdi\" --type normal\nVBoxManage modifymedium \"/path/to/disk.vdi\" --type immutable\nVBoxManage modifymedium \"/path/to/disk.vdi\" --type writethrough\n\nGuest Control (Guest Additions Required)\n# Execute command in guest\nVBoxManage guestcontrol \"VM_NAME\" run --exe \"/bin/ls\" \\\n  --username user --password pass -- -la /home\n\n# Copy file to guest\nVBoxManage guestcontrol \"VM_NAME\" copyto \\\n  --username user --password pass \\\n  \"/host/path/file.txt\" \"/guest/path/file.txt\"\n\n# Copy file from guest\nVBoxManage guestcontrol \"VM_NAME\" copyfrom \\\n  --username user --password pass \\\n  \"/guest/path/file.txt\" \"/host/path/file.txt\"\n\n# Create directory in guest\nVBoxManage guestcontrol \"VM_NAME\" mkdir \\\n  --username user --password pass \\\n  \"/home/user/newdir\"\n\n# Remove file in guest\nVBoxManage guestcontrol \"VM_NAME\" rm \\\n  --username user --password pass \\\n  \"/home/user/file.txt\"\n\n# List guest processes\nVBoxManage guestcontrol \"VM_NAME\" process list \\\n  --username user --password pass\n\nDebugging & Logs\n# View VM logs location\nVBoxManage showvminfo \"VM_NAME\" | grep -i log\n\n# Typical log paths:\n# Linux/macOS: ~/VirtualBox VMs/VM_NAME/Logs/\n# Windows: %USERPROFILE%\\VirtualBox VMs\\VM_NAME\\Logs\\\n\n# Debug a VM\nVBoxManage debugvm \"VM_NAME\" info item\n\n# Get VM statistics\nVBoxManage debugvm \"VM_NAME\" statistics\n\nPractical Examples\nQuick VM Status Check\n# Check if a specific VM is running\nVBoxManage list runningvms | grep \"VM_NAME\"\n\n# Get all VMs with their states\nVBoxManage list vms --long | grep -E \"Name:|State:\"\n\nAutomated VM Startup Script\n#!/bin/bash\n# Start VMs in headless mode\nfor vm in \"WebServer\" \"Database\" \"Cache\"; do\n  echo \"Starting $vm...\"\n  VBoxManage startvm \"$vm\" --type headless\n  sleep 10\ndone\necho \"All VMs started\"\n\nBackup Script with Snapshots\n#!/bin/bash\nVM_NAME=\"ProductionVM\"\nDATE=$(date +%Y%m%d_%H%M%S)\nSNAPSHOT_NAME=\"Backup_$DATE\"\n\n# Create snapshot\nVBoxManage snapshot \"$VM_NAME\" take \"$SNAPSHOT_NAME\" \\\n  --description \"Automated backup $DATE\"\n\n# Keep only last 5 snapshots\nSNAPSHOTS=$(VBoxManage snapshot \"$VM_NAME\" list --machinereadable | grep SnapshotName | wc -l)\nif [ $SNAPSHOTS -gt 5 ]; then\n  OLDEST=$(VBoxManage snapshot \"$VM_NAME\" list --machinereadable | grep SnapshotName | head -1 | cut -d'\"' -f4)\n  VBoxManage snapshot \"$VM_NAME\" delete \"$OLDEST\"\nfi\n\nComplete VM Cloning Workflow\n#!/bin/bash\nSOURCE_VM=\"TemplateVM\"\nNEW_VM=\"DevVM_$(date +%s)\"\n\n# Ensure source is stopped\nVBoxManage controlvm \"$SOURCE_VM\" poweroff 2>/dev/null\n\n# Take a clean snapshot first\nVBoxManage snapshot \"$SOURCE_VM\" take \"PreClone\"\n\n# Clone the VM\nVBoxManage clonevm \"$SOURCE_VM\" --name \"$NEW_VM\" --register\n\n# Modify the clone\nVBoxManage modifyvm \"$NEW_VM\" --memory 2048 --cpus 2\n\n# Start the clone\nVBoxManage startvm \"$NEW_VM\" --type headless\n\necho \"Cloned VM '$NEW_VM' is now running\"\n\nNetwork Port Forwarding Setup\n#!/bin/bash\nVM_NAME=\"WebServer\"\n\n# SSH access\nVBoxManage modifyvm \"$VM_NAME\" --natpf1 \"ssh,tcp,,2222,,22\"\n\n# HTTP access\nVBoxManage modifyvm \"$VM_NAME\" --natpf1 \"http,tcp,,8080,,80\"\n\n# HTTPS access\nVBoxManage modifyvm \"$VM_NAME\" --natpf1 \"https,tcp,,8443,,443\"\n\n# Verify\nVBoxManage showvminfo \"$VM_NAME\" | grep \"NIC 1 Rule\"\n\nMonitor Resource Usage\n#!/bin/bash\nVM_NAME=\"ProductionVM\"\n\n# Setup metrics\nVBoxManage metrics setup --period 5 --samples 12 \"$VM_NAME\"\n\n# Collect for 1 minute and show results\nsleep 60\nVBoxManage metrics query \"$VM_NAME\" \"CPU/Load:RAM/Usage:Net/Rate\"\n\nCommon Issues & Solutions\nVM Won't Start\n# Check VM state\nVBoxManage showvminfo \"VM_NAME\" | grep State\n\n# Check for locked files\nVBoxManage showvminfo \"VM_NAME\" | grep -i lock\n\n# Try starting with verbose output\nVBoxManage startvm \"VM_NAME\" --type headless 2>&1\n\nCannot Delete VM\n# Ensure VM is stopped\nVBoxManage controlvm \"VM_NAME\" poweroff\n\n# Check for attached media\nVBoxManage showvminfo \"VM_NAME\" | grep -E \"Storage|Medium\"\n\n# Force unregister if needed\nVBoxManage unregistervm \"VM_NAME\" --delete\n\nNetwork Issues\n# Check adapter status\nVBoxManage showvminfo \"VM_NAME\" | grep -A 10 \"NIC 1\"\n\n# Reset network adapter\nVBoxManage modifyvm \"VM_NAME\" --nic1 none\nVBoxManage modifyvm \"VM_NAME\" --nic1 nat\n\n# Verify host-only interface exists\nVBoxManage list hostonlyifs\n\nPerformance Issues\n# Check current allocation\nVBoxManage showvminfo \"VM_NAME\" | grep -E \"Memory|CPU\"\n\n# Increase resources (VM must be stopped)\nVBoxManage modifyvm \"VM_NAME\" --memory 8192 --cpus 4\n\n# Enable hardware acceleration\nVBoxManage modifyvm \"VM_NAME\" --hwvirtex on --nestedpaging on\n\nImportant Notes\n\nVM Names with Spaces: Always quote VM names containing spaces\n\nVBoxManage startvm \"My Production VM\"\n\n\nUUIDs vs Names: Both VM names and UUIDs work interchangeably\n\nVBoxManage startvm \"VM_NAME\"\nVBoxManage startvm \"12345678-1234-1234-1234-123456789abc\"\n\n\nRunning vs Stopped Operations:\n\ncontrolvm - operates on running VMs\nmodifyvm - operates on stopped VMs (mostly)\n\nHeadless Mode: Always use --type headless for server environments without GUI\n\nPermissions: Some operations require elevated permissions or membership in specific groups (e.g., vboxusers on Linux)\n\nGuest Additions: Required for:\n\nShared clipboard\nDrag and drop\nShared folders auto-mount\nGuest control commands\nSeamless mode\nOS Types Reference\n\nCommon OS types for --ostype parameter:\n\nWindows11_64 - Windows 11 (64-bit)\nWindows10_64 - Windows 10 (64-bit)\nUbuntu_64 - Ubuntu Linux (64-bit)\nDebian_64 - Debian Linux (64-bit)\nFedora_64 - Fedora Linux (64-bit)\nArchLinux_64 - Arch Linux (64-bit)\nmacOS_ARM64 - macOS on Apple Silicon\nmacOS_128 - macOS on Intel (64-bit)\nFreeBSD_64 - FreeBSD (64-bit)\nOther_64 - Other OS (64-bit)\n\nGet full list with:\n\nVBoxManage list ostypes\n\nQuick Reference Card\nOperation\tCommand\nList VMs\tVBoxManage list vms\nStart VM\tVBoxManage startvm \"NAME\" --type headless\nStop VM\tVBoxManage controlvm \"NAME\" acpipowerbutton\nForce Stop\tVBoxManage controlvm \"NAME\" poweroff\nVM Info\tVBoxManage showvminfo \"NAME\"\nSnapshot\tVBoxManage snapshot \"NAME\" take \"SnapName\"\nRestore\tVBoxManage snapshot \"NAME\" restore \"SnapName\"\nClone\tVBoxManage clonevm \"SRC\" --name \"NEW\" --register\nDelete\tVBoxManage unregistervm \"NAME\" --delete\nModify RAM\tVBoxManage modifyvm \"NAME\" --memory 4096\nModify CPU\tVBoxManage modifyvm \"NAME\" --cpus 2\nPort Forward\tVBoxManage modifyvm \"NAME\" --natpf1 \"rule,tcp,,host,,guest\"\nRequirements\nRequired Binary: VBoxManage (part of VirtualBox installation)\nPermissions: User must have VM management permissions\nGuest Additions: Required for guest control and enhanced features"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0xFratex/virtualboxmanager",
    "publisherUrl": "https://clawhub.ai/0xFratex/virtualboxmanager",
    "owner": "0xFratex",
    "version": "0.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/virtualboxmanager",
    "downloadUrl": "https://openagent3.xyz/downloads/virtualboxmanager",
    "agentUrl": "https://openagent3.xyz/skills/virtualboxmanager/agent",
    "manifestUrl": "https://openagent3.xyz/skills/virtualboxmanager/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/virtualboxmanager/agent.md"
  }
}