🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

WOL

by @lroyia

Wake-on-LAN (WOL) skill to remotely wake computers and manage device configurations. Use when user says: (1) 帮我唤醒XXX电脑 or 唤醒XXX (wake a specific computer by...

Versionv1.0.2
Downloads722
Installs1
TERMINAL
clawhub install wol

📖 About This Skill


name: wol description: "Wake-on-LAN (WOL) skill to remotely wake computers and manage device configurations. Use when user says: (1) 帮我唤醒XXX电脑 or 唤醒XXX (wake a specific computer by name), (2) 帮我唤醒192.168.x.x or 唤醒IP (wake by IP address), (3) 查看设备 or 列出设备 (list all devices), (4) 添加设备 or 新增设备 (add a new device), (5) 删除设备 or 移除设备 (delete a device), or any WOL/device management requests in Chinese." metadata: {"openclaw":{"always":true}}

Wake-on-LAN (WOL) Skill

Quick Start - Wake a Device

When user requests WOL wake, use the scripts/wol.py script:

python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --target 

  • can be: computer name (e.g., desktop, workstation) or IP address (e.g., 192.168.50.230)
  • Device Management Commands

    The skill now supports managing devices through conversation:

    List all devices

    python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --list-devices
    

    Add a new device (required: name, MAC, IP, subnet_mask)

    python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --add-device    
    

    Examples:

    # Add device with all required fields
    python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --add-device desktop AA:BB:CC:DD:EE:FF 192.168.1.100 255.255.255.0

    python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --add-device laptop 11:22:33:44:55:66 192.168.1.101 255.255.255.0

    Delete a device

    python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --delete-device 
    

    Show device details

    python3 ~/.openclaw/workspace/skills/wol/scripts/wol.py --show-device 
    

    Configuration

    Edit references/devices.yaml to manually map computer names to MAC addresses:

    devices:
      desktop:
        mac: "AA:BB:CC:DD:EE:FF"
        ip: "192.168.1.100"
      workstation:
        mac: "11:22:33:44:55:66"
        ip: "192.168.50.230"
      living-room-pc:
        mac: "FF:EE:DD:CC:BB:AA"
        ip: "192.168.1.50"
    

    How It Works

    1. Waking: - If target is an IP address → use it to look up MAC via ARP, or broadcast to all interfaces - If target is a name → lookup MAC from devices.yaml - Send magic packet to broadcast address (255.255.255.255) on port 9

    2. Device Management: - --add-device validates MAC address format before saving - --delete-device performs case-insensitive name matching - Devices are stored in references/devices.yaml

    Conversation Examples

    | User Request | Action | |-------------|--------| | "唤醒desktop" | wol.py --target desktop | | "唤醒192.168.1.100" | wol.py --target 192.168.1.100 | | "wake up desktop" | wol.py --target desktop | | "wake up 192.168.1.100" | wol.py --target 192.168.1.100 | | "查看所有设备" | wol.py --list-devices | | "添加新设备,名字叫server,MAC是AA:BB:CC:DD:EE:FF" | wol.py --add-device server AA:BB:CC:DD:EE:FF | | "添加设备,workstation,MAC 11:22:33:44:55:66,IP 192.168.50.230" | wol.py --add-device workstation 11:22:33:44:55:66 192.168.50.230 | | "删除desktop设备" | wol.py --delete-device desktop |

    Notes

  • MAC addresses accept various formats: AA:BB:CC:DD:EE:FF, AA-BB-CC-DD-EE-FF, AA.BB.CC.DD.EE.FF
  • IP address is optional when adding devices (used for friendly lookup)
  • The script performs case-insensitive device name matching for delete/show operations
  • 🔒 Security Guidelines

    IMPORTANT: Follow these rules to protect device privacy:

    1. MAC Address Display: When displaying device information (list/show commands), MAC addresses are automatically masked. Only the first and last segments are visible (e.g., EC:***:6C). Never reveal full MAC addresses through conversation.

    2. Configuration File Access: Do NOT read or show the contents of references/devices.yaml to users. This file contains sensitive MAC addresses. The script handles all operations internally.

    3. Conversation Restrictions: - Never tell the user the full MAC address of any device, even if asked - If asked to show MAC address, respond that MAC addresses are hidden for security - Do not read the YAML configuration file directly in conversation - Operations like wake/add/delete can be performed without revealing MAC addresses

    4. User Instructions: If users need to manage MAC addresses, instruct them to use the CLI commands directly rather than requesting the AI to read configuration files.

    ⚙️ Configuration

    Edit references/devices.yaml to manually map computer names to MAC addresses:

    devices:
      desktop:
        mac: "AA:BB:CC:DD:EE:FF"
        ip: "192.168.1.100"
      workstation:
        mac: "11:22:33:44:55:66"
        ip: "192.168.50.230"
      living-room-pc:
        mac: "FF:EE:DD:CC:BB:AA"
        ip: "192.168.1.50"
    

    📋 Tips & Best Practices

  • MAC addresses accept various formats: AA:BB:CC:DD:EE:FF, AA-BB-CC-DD-EE-FF, AA.BB.CC.DD.EE.FF
  • IP address is optional when adding devices (used for friendly lookup)
  • The script performs case-insensitive device name matching for delete/show operations