wake-on-lan について
wake-on-lan は、ローカルネットワーク上の WoL 対応コンピューターに UDP の Magic Packet を送るコマンドラインスキルです。ホスト設定の管理にも対応し、結果を JSON で返します。
主な機能
- 01UDP Magic Packet によるホストの起動
- 02ホスト設定の追加・編集・一覧表示
- 03MAC アドレスを指定した直接起動
- 04ブロードキャスト・ポート・送信数の設定
- 05JSON 形式での結果出力
活用シーン
- 01登録済みのホスト名でコンピューターを起動
- 02MAC アドレスだけでコンピューターを起動
- 03ネットワークが不安定な場合の送信数調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wmy2981/ skills --skill wake-on-lanインストール後、Claude Code で/wake-on-lanを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.claude-plugin/plugin.jsonscripts/.env.examplewol.py詳細
Wake on LAN
UDP ブロードキャスト経由でマジックパケットを送信し、ローカルネットワーク上の WoL 対応コンピューターを起動します。スクリプトからホスト設定を管理できるため、YAML を手動で編集する必要はありません。
実行ルール
ユーザーが要求したコマンドを、依存関係、環境変数、設定を事前に確認せずに直接実行します。問題がある場合はスクリプトが明確なエラーを出して失敗するため、その時点でのみ確認して修正してください。
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
WOL_CONFIG_PATH | ❌ | hosts.yaml のカスタムパス(デフォルト:~/.wmyskills/wake-on-lan/hosts.yaml) |
スクリプトは ~/.wmyskills/.env(スキル間で共有)からこれらを自動的に読み込みます。スクリプトディレクトリに scripts/.env がある場合は、そちらが優先されます。テンプレートとして scripts/.env.example を使用してください。変数は ~/.wmyskills/.env に追加し、既存のファイルを上書きしないでください。
要件
pip install pyyaml python-dotenv
使い方
スクリプト:scripts/wol.py
ホストの管理
# List all configured hosts
python scripts/wol.py list
# Add a host
python scripts/wol.py add my-pc AA:BB:CC:DD:EE:FF --ip 192.168.1.100
# Edit a host's fields
python scripts/wol.py edit my-pc --mac 00:11:22:33:44:55 --ip 192.168.1.10
# Remove a host
python scripts/wol.py remove my-pc
ホストの起動
# Wake by name (from host list)
python scripts/wol.py wake my-pc
# Wake with more packets (improves reliability on lossy networks)
python scripts/wol.py wake my-pc --count 5
# Wake by raw MAC address (no config needed)
python scripts/wol.py wake-mac AA:BB:CC:DD:EE:FF
# Wake by MAC with custom broadcast
python scripts/wol.py wake-mac AA:BB:CC:DD:EE:FF --broadcast 192.168.1.255 --port 9
Add コマンドのオプション
| フラグ | 説明 |
|---|---|
--ip IP | IP アドレス(表示/参照用) |
--broadcast BC | ブロードキャストアドレス(デフォルト:255.255.255.255) |
--port PORT | UDP ポート(デフォルト:9) |
--count N | 送信するマジックパケットの数(デフォルト:3) |
Wake/Wake-MAC オプション
| フラグ | 説明 |
|---|---|
--broadcast BC | ブロードキャストアドレスを上書きします |
--port PORT | UDP ポートを上書きします(デフォルト:9) |
--count N | 送信するパケットの数(デフォルト:3。数を増やすと信頼性が向上します) |
Edit オプション
| フラグ | 説明 |
|---|---|
--new-name NAME | ホストの名前を変更します |
--mac MAC | MAC アドレスを変更します |
--ip IP | IP アドレスを変更します |
--broadcast BC | ブロードキャストアドレスを変更します |
--port PORT | UDP ポートを変更します |
--count N | パケット数を変更します |
出力形式
すべての出力は JSON 形式です。
{"success": true, "host": "my-pc", "mac": "AA:BB:CC:DD:EE:FF", "broadcast": "255.255.255.255", "port": 9, "packets_sent": 3, "message": "Magic packet sent to AA:BB:CC:DD:EE:FF (3x via 255.255.255.255:9)"}
失敗時:
{"success": false, "error": "Host 'xyz' not found", "available_hosts": ["my-pc", "my-server"]}
注意事項
- 起動対象のコンピューターのネットワークアダプターとマザーボードが WoL に対応し、BIOS/UEFI で有効になっている必要があります。
- マジックパケットは UDP ブロードキャストです。ローカルサブネット内にとどまります。サブネットをまたいだ WoL には、ダイレクトブロードキャストまたはリレーの設定が必要です。
- ホスト設定はデフォルトで
~/.wmyskills/wake-on-lan/hosts.yamlに保存されます。スクリプトは初回実行時にこのファイルを自動作成します。 - 依存関係:Python 3.8 以降、
pyyaml。パケットの構築には標準ライブラリのソケットを使用します。
コメント
Markdown 対応