- name
- wolp
- description
- Wake or shut down LAN devices by sending WOL-plus packets from the agent host. Use this when the user wants to power on a device with a raw Ethernet magic packet, or power off a device with a UDP magic packet, and they can provide the target MAC address plus the network interface or target IPv4 address.
wolp
Use this skill when the user wants the agent to control a device on the local network.
Supported operations:
wake: send a standard UDP Wake-on-LAN magic packet with Pythonshutdown: send a UDP magic packet to a target IPv4 addresslist: print the resolved device inventory
Use the bundled Python script:
scripts/wolp_power.pyassets/devices.json
Required inputs:
- Wake:
- target MAC address - optional broadcast IPv4 address, default 255.255.255.255 - optional UDP port, default 9
- Shutdown:
- target MAC address - target IPv4 address - optional extra_data, default FF:FF:FF:FF:FF:FF - optional UDP port, default 9
Constraints:
shutdownuses a normal UDP socket and does not requireroot.wakeuses the Python packagewakeonlanand does not require a compiled helper.- Install the dependency before sending wake packets:
python3 -m pip install wakeonlan- The
wakesubcommand will print a clear error ifwakeonlanis missing. shutdownrequires IP connectivity to the target host and a compatible WOL-plus listener on the target machine.- Packet send confirms only local transmission, not that the remote machine actually changed power state.
Device inventory:
- Store reusable devices in
skill/wolp/assets/devices.json. - Successful non-dry-run
wakeandshutdowncommands automatically write the resolved device info back toassets/devices.json. - If
--device <name>is provided, that entry is updated in place; otherwise the script reuses an existing entry with the same MAC or creates a newdevice-<mac>entry. - Repeated operations on the same device keep refreshing that device's stored fields and the latest success metadata.
- The file format is:
{
"defaults": {
"broadcast_ip": "255.255.255.255",
"port": 9,
"extra_data": "FF:FF:FF:FF:FF:FF"
},
"devices": {
"nas": {
"mac": "AA:BB:CC:DD:EE:FF",
"host": "192.168.1.50",
"broadcast_ip": "192.168.1.255"
},
"desktop": {
"mac": "11:22:33:44:55:66",
"host": "192.168.1.60",
"extra_data": "12:34:56:78:9A:BC",
"last_action": "shutdown",
"last_success_at": "2026-03-21T00:00:00Z",
"port": 9
}
}
}- Use
listbefore sending if you need to inspect or verify stored devices. - CLI flags override inventory values.
Preferred commands:
python3 skill/wolp/scripts/wolp_power.py list
python3 skill/wolp/scripts/wolp_power.py wake --device nas
python3 skill/wolp/scripts/wolp_power.py shutdown --device nas
python3 skill/wolp/scripts/wolp_power.py wake --mac AA:BB:CC:DD:EE:FF
python3 skill/wolp/scripts/wolp_power.py wake --mac AA:BB:CC:DD:EE:FF --broadcast-ip 192.168.1.255 --port 9
python3 skill/wolp/scripts/wolp_power.py shutdown --host 192.168.1.50 --mac AA:BB:CC:DD:EE:FF --extra-data FF:FF:FF:FF:FF:FF --port 9For safe previews or debugging, use --dry-run first:
python3 skill/wolp/scripts/wolp_power.py wake --device nas --dry-run
python3 skill/wolp/scripts/wolp_power.py shutdown --device nas --dry-runClient install and config:
- Project:
https://github.com/leeyeel/WOL-plus - Releases:
https://github.com/leeyeel/WOL-plus/releases - Client receives shutdown packets and serves the Web UI.
- Default Web UI access:
- URL: http://<client-ip>:2025 - username: admin - password: admin123
Agent standard install procedure:
- Confirm the minimum missing inputs only:
- target OS: Windows, Debian/Ubuntu, or RPM-based Linux - target architecture when relevant: amd64 or arm64/aarch64 - whether the agent can install directly on the target machine or must only provide user instructions - target machine IP if the user wants Web UI verification
- Choose the install source:
- prefer a matching package from Releases - prefer the Debian package when the agent can reach a Debian/Ubuntu host over SSH - only build from this repo when a needed Debian package is unavailable from Releases
- Install by platform:
- Windows: - download installer_windows_amd64_v<version>.exe from Releases - if the agent cannot control the Windows desktop session, tell the user to run the installer manually - after installation, verify the service is running and open http://<windows-ip>:2025 - Debian/Ubuntu:
sudo dpkg -i wolp-client_<version>_amd64.deb
sudo systemctl status wolp.service- RPM Linux:
sudo rpm -ivh wolp-client-<version>-1.x86_64.rpm
sudo systemctl status wolp.service- Debian build fallback from this repo:
bash scripts/build-deb.sh amd64 0.0.0-dev
sudo dpkg -i release/client/wolp-client_0.0.0-dev_amd64.deb
sudo systemctl status wolp.service- Verify the client after install:
- confirm wolp.service is active - confirm the Web UI responds at http://<client-ip>:2025 - tell the user to change the default password after first login
- Configure the client when the user wants shutdown support:
- edit /usr/local/etc/wolp/wolp.json - set mac_address to the client machine MAC that should receive the shutdown packet - set interface to the active NIC name on the client machine - set extra_data to match the sender's --extra-data - set udp_port to match the sender's --port - set shutdown_delay, username, and password as requested
- Remember the fixed defaults and path layout:
- binary: /usr/local/bin/wolp - config: /usr/local/etc/wolp/wolp.json - web UI: /usr/share/wolp/webui - service: wolp.service - default extra_data=FF:FF:FF:FF:FF:FF - default udp_port=9 - default shutdown_delay=60 - default HTTP UI port 2025
- Keep protocol roles clear:
- sender-side inventory interface matters only for wake - receiver-side udp_port and extra_data matter only for shutdown
When reporting results or performing installs:
- echo the resolved broadcast IP, host, UDP port, and normalized MAC values
- for wake, report that the packet is sent through the
wakeonlanPython package - state clearly whether the script performed a real send or a dry run
- if the user did not provide enough data, ask only for the missing MAC, target IPv4 address, or wake broadcast IP when needed
- if you install the client, report the package source, package path, config path, Web UI URL, and the exact
extra_dataandudp_portvalues you configured