WOL

Install WOL — Verified archive setup for macOS, Linux and Windows

Download, verify SHA-256 checksums and optional Ed25519 signatures, and install WOL in your user bin directory on macOS, Linux and Windows.

Downloadable stable release: v0.4.18 (2026-10-15) · View GitHub release notes →

Recording version: 0.4.18

Pinned Ed25519 public key SPKI SHA-256 fingerprint: ac3979581b0ada7f53a4309a2cfefa983283f62cf914f87b5aa0e8619607f1be

All host platforms & architectures (works without JavaScript)

macOS · Apple Silicon (arm64) — wol_0.4.18_darwin_arm64.tar.gz

wol_0.4.18_darwin_arm64.tar.gz · SHA-256: c2ff20dda12c113a07c2fd245443caa49396e7ffe962d241d208c1e94b489fef

Download, verify SHA-256 checksum, and install (wol_0.4.18_darwin_arm64.tar.gz)

This block creates a temporary directory, downloads version 0.4.18 and SHA256SUMS, verifies the exact archive digest before extracting into ~/.local/bin/wol, and runs absolute-path version and doctor before updating PATH.

(
  set -eu
  task_work_dir="$(mktemp -d)"
  trap 'rm -rf "$task_work_dir"' EXIT
  cd "$task_work_dir"
  task_archive='wol_0.4.18_darwin_arm64.tar.gz'
  task_base='https://github.com/aklkbqx/wol/releases/download/v0.4.18'
  curl --fail --location --proto '=https' --tlsv1.2 --output "$task_archive" "$task_base/$task_archive"
  curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS "$task_base/SHA256SUMS"
  awk -v wanted="$task_archive" '$2 == wanted {print}' SHA256SUMS > selected.sha256
  test "$(awk 'END {print NR}' selected.sha256)" -eq 1
  shasum -a 256 -c selected.sha256
  tar -xzf "$task_archive" wol
  mkdir -p "$HOME/.local/bin"
  install -m 755 wol "$HOME/.local/bin/wol"
  "$HOME/.local/bin/wol" version
  "$HOME/.local/bin/wol" doctor
)
export PATH="$HOME/.local/bin:$PATH"
command -v wol

Optional: Verify detached Ed25519 publisher signature (from v0.4.16)

Requires OpenSSL 3+ with Ed25519 support and the public key matching SPKI SHA-256 fingerprint: ac3979581b0ada7f53a4309a2cfefa983283f62cf914f87b5aa0e8619607f1be

curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS.sig 'https://github.com/aklkbqx/wol/releases/download/v0.4.18/SHA256SUMS.sig'
openssl pkeyutl -verify -pubin -inkey wol-release-public.pem \
  -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
macOS · Intel (amd64) — wol_0.4.18_darwin_amd64.tar.gz

wol_0.4.18_darwin_amd64.tar.gz · SHA-256: 039e3d2e3f93123667f5f1ab6b6ed91d9b1dfc3fec6d91c3093b53e408c54f80

Download, verify SHA-256 checksum, and install (wol_0.4.18_darwin_amd64.tar.gz)

This block creates a temporary directory, downloads version 0.4.18 and SHA256SUMS, verifies the exact archive digest before extracting into ~/.local/bin/wol, and runs absolute-path version and doctor before updating PATH.

(
  set -eu
  task_work_dir="$(mktemp -d)"
  trap 'rm -rf "$task_work_dir"' EXIT
  cd "$task_work_dir"
  task_archive='wol_0.4.18_darwin_amd64.tar.gz'
  task_base='https://github.com/aklkbqx/wol/releases/download/v0.4.18'
  curl --fail --location --proto '=https' --tlsv1.2 --output "$task_archive" "$task_base/$task_archive"
  curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS "$task_base/SHA256SUMS"
  awk -v wanted="$task_archive" '$2 == wanted {print}' SHA256SUMS > selected.sha256
  test "$(awk 'END {print NR}' selected.sha256)" -eq 1
  shasum -a 256 -c selected.sha256
  tar -xzf "$task_archive" wol
  mkdir -p "$HOME/.local/bin"
  install -m 755 wol "$HOME/.local/bin/wol"
  "$HOME/.local/bin/wol" version
  "$HOME/.local/bin/wol" doctor
)
export PATH="$HOME/.local/bin:$PATH"
command -v wol

Optional: Verify detached Ed25519 publisher signature (from v0.4.16)

Requires OpenSSL 3+ with Ed25519 support and the public key matching SPKI SHA-256 fingerprint: ac3979581b0ada7f53a4309a2cfefa983283f62cf914f87b5aa0e8619607f1be

curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS.sig 'https://github.com/aklkbqx/wol/releases/download/v0.4.18/SHA256SUMS.sig'
openssl pkeyutl -verify -pubin -inkey wol-release-public.pem \
  -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
Linux · x86_64 (amd64) — wol_0.4.18_linux_amd64.tar.gz

wol_0.4.18_linux_amd64.tar.gz · SHA-256: e3c3f3c52565b7caee14a4ccf22ddb3a0be083d77f3a2a3a3880146a775b7c1d

Download, verify SHA-256 checksum, and install (wol_0.4.18_linux_amd64.tar.gz)

This block creates a temporary directory, downloads version 0.4.18 and SHA256SUMS, verifies the exact archive digest before extracting into ~/.local/bin/wol, and runs absolute-path version and doctor before updating PATH.

(
  set -eu
  task_work_dir="$(mktemp -d)"
  trap 'rm -rf "$task_work_dir"' EXIT
  cd "$task_work_dir"
  task_archive='wol_0.4.18_linux_amd64.tar.gz'
  task_base='https://github.com/aklkbqx/wol/releases/download/v0.4.18'
  curl --fail --location --proto '=https' --tlsv1.2 --output "$task_archive" "$task_base/$task_archive"
  curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS "$task_base/SHA256SUMS"
  awk -v wanted="$task_archive" '$2 == wanted {print}' SHA256SUMS > selected.sha256
  test "$(awk 'END {print NR}' selected.sha256)" -eq 1
  sha256sum -c selected.sha256
  tar -xzf "$task_archive" wol
  mkdir -p "$HOME/.local/bin"
  install -m 755 wol "$HOME/.local/bin/wol"
  "$HOME/.local/bin/wol" version
  "$HOME/.local/bin/wol" doctor
)
export PATH="$HOME/.local/bin:$PATH"
command -v wol

Optional: Verify detached Ed25519 publisher signature (from v0.4.16)

Requires OpenSSL 3+ with Ed25519 support and the public key matching SPKI SHA-256 fingerprint: ac3979581b0ada7f53a4309a2cfefa983283f62cf914f87b5aa0e8619607f1be

curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS.sig 'https://github.com/aklkbqx/wol/releases/download/v0.4.18/SHA256SUMS.sig'
openssl pkeyutl -verify -pubin -inkey wol-release-public.pem \
  -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
Linux · ARM64 (aarch64) — wol_0.4.18_linux_arm64.tar.gz

wol_0.4.18_linux_arm64.tar.gz · SHA-256: 591acbeb23ae593c39d68279a2f07d95c0a0078a1942c51cbea33aef813fd817

Download, verify SHA-256 checksum, and install (wol_0.4.18_linux_arm64.tar.gz)

This block creates a temporary directory, downloads version 0.4.18 and SHA256SUMS, verifies the exact archive digest before extracting into ~/.local/bin/wol, and runs absolute-path version and doctor before updating PATH.

(
  set -eu
  task_work_dir="$(mktemp -d)"
  trap 'rm -rf "$task_work_dir"' EXIT
  cd "$task_work_dir"
  task_archive='wol_0.4.18_linux_arm64.tar.gz'
  task_base='https://github.com/aklkbqx/wol/releases/download/v0.4.18'
  curl --fail --location --proto '=https' --tlsv1.2 --output "$task_archive" "$task_base/$task_archive"
  curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS "$task_base/SHA256SUMS"
  awk -v wanted="$task_archive" '$2 == wanted {print}' SHA256SUMS > selected.sha256
  test "$(awk 'END {print NR}' selected.sha256)" -eq 1
  sha256sum -c selected.sha256
  tar -xzf "$task_archive" wol
  mkdir -p "$HOME/.local/bin"
  install -m 755 wol "$HOME/.local/bin/wol"
  "$HOME/.local/bin/wol" version
  "$HOME/.local/bin/wol" doctor
)
export PATH="$HOME/.local/bin:$PATH"
command -v wol

Optional: Verify detached Ed25519 publisher signature (from v0.4.16)

Requires OpenSSL 3+ with Ed25519 support and the public key matching SPKI SHA-256 fingerprint: ac3979581b0ada7f53a4309a2cfefa983283f62cf914f87b5aa0e8619607f1be

curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS.sig 'https://github.com/aklkbqx/wol/releases/download/v0.4.18/SHA256SUMS.sig'
openssl pkeyutl -verify -pubin -inkey wol-release-public.pem \
  -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
Windows · x64 (amd64) — wol_0.4.18_windows_amd64.zip

wol_0.4.18_windows_amd64.zip · SHA-256: a1a27e078ae9355892f431be8cd2f33e67f76083ce53880ebf5137b65e507c41

Download, verify SHA-256 checksum, and install (wol_0.4.18_windows_amd64.zip)

This block creates a temporary directory, downloads version 0.4.18 and SHA256SUMS, verifies the exact archive digest before extracting into %LOCALAPPDATA%\Programs\wol\wol.exe, and runs absolute-path version and doctor before updating PATH.

& {
  $ErrorActionPreference = 'Stop'
  $taskWorkspace = Join-Path ([IO.Path]::GetTempPath()) ('wol-' + [Guid]::NewGuid().ToString())
  New-Item -ItemType Directory -Path $taskWorkspace | Out-Null
  try {
    $taskArchive = 'wol_0.4.18_windows_amd64.zip'
    $taskBase = 'https://github.com/aklkbqx/wol/releases/download/v0.4.18'
    $taskArchivePath = Join-Path $taskWorkspace $taskArchive
    $taskSumsPath = Join-Path $taskWorkspace 'SHA256SUMS'
    Invoke-WebRequest -Uri ($taskBase + '/' + $taskArchive) -OutFile $taskArchivePath
    Invoke-WebRequest -Uri ($taskBase + '/SHA256SUMS') -OutFile $taskSumsPath
    $taskRows = @(Get-Content -LiteralPath $taskSumsPath | Where-Object {
      $_ -match ('^[a-fA-F0-9]{64}\s+' + [Regex]::Escape($taskArchive) + '#x27;)
    })
    if ($taskRows.Count -ne 1) { throw 'Missing or ambiguous checksum entry' }
    $taskExpected = ($taskRows[0] -split '\s+')[0]
    $taskActual = (Get-FileHash -LiteralPath $taskArchivePath -Algorithm SHA256).Hash
    if ($taskActual -ine $taskExpected) { throw 'Archive checksum mismatch' }
    $taskExtractDir = Join-Path $taskWorkspace 'extracted'
    Expand-Archive -LiteralPath $taskArchivePath -DestinationPath $taskExtractDir
    $taskInstallDir = Join-Path $env:LOCALAPPDATA 'Programs\wol'
    New-Item -ItemType Directory -Force -Path $taskInstallDir | Out-Null
    Copy-Item -LiteralPath (Join-Path $taskExtractDir 'wol.exe') -Destination $taskInstallDir
    & (Join-Path $taskInstallDir 'wol.exe') version
    if ($LASTEXITCODE -ne 0) { throw 'The installed executable could not run' }
    & (Join-Path $taskInstallDir 'wol.exe') doctor
    $taskUserPath = [Environment]::GetEnvironmentVariable('Path', 'User')
    $taskEntries = @($taskUserPath -split ';' | Where-Object { $_ })
    $taskExisting = @($taskEntries | Where-Object {
      $_.TrimEnd([char[]]'\/') -ieq $taskInstallDir.TrimEnd([char[]]'\/')
    })
    if ($taskExisting.Count -eq 0) {
      [Environment]::SetEnvironmentVariable('Path', (($taskEntries + $taskInstallDir) -join ';'), 'User')
    }
    $taskOtherPaths = @($env:Path -split ';' | Where-Object {
      $_ -and $_.TrimEnd([char[]]'\/') -ine $taskInstallDir.TrimEnd([char[]]'\/')
    })
    $env:Path = (@($taskInstallDir) + $taskOtherPaths) -join ';'
    $taskResolved = (Get-Command wol).Source
    if ($taskResolved -ine (Join-Path $taskInstallDir 'wol.exe')) {
      throw 'Another WOL executable is taking precedence; use the shown absolute path'
    }
    $taskResolved
  } finally {
    Remove-Item -LiteralPath $taskWorkspace -Recurse -Force
  }
}

Optional: Verify detached Ed25519 publisher signature (from v0.4.16)

Requires OpenSSL 3+ with Ed25519 support and the public key matching SPKI SHA-256 fingerprint: ac3979581b0ada7f53a4309a2cfefa983283f62cf914f87b5aa0e8619607f1be

curl --fail --location --proto '=https' --tlsv1.2 --output SHA256SUMS.sig 'https://github.com/aklkbqx/wol/releases/download/v0.4.18/SHA256SUMS.sig'
openssl pkeyutl -verify -pubin -inkey wol-release-public.pem \
  -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig