Upgrade and Migration Guide
How to upgrade GetWebP CLI to a new version, change your plan tier, or move your license to a different device.
Upgrade and Migration Guide
How to upgrade GetWebP CLI to a new version, change your plan tier, or move your license to a different device.
See also: Getting Started | Commands Reference | Troubleshooting
Table of Contents#
- Upgrade Your Plan (Free to Starter to Pro)
- Upgrade the CLI Version
- Migrate to a New Device
- Config File Compatibility
- Breaking Changes by Version
- FAQ
Upgrade Your Plan (Free to Starter to Pro)#
GetWebP CLI works immediately on the Free plan. To unlock faster processing, parallel workers, and unlimited files per run, upgrade to Starter or Pro.
How Plan Upgrades Work#
| From | To | What Changes |
|---|---|---|
| Free | Starter | Removes 10-file limit and 3s delay. Enables parallel processing. |
| Free | Pro | Same as above, plus all Pro-tier features. |
| Starter | Pro | Unlocks additional Pro-tier features. |
Steps#
- Purchase or upgrade your license at getwebp.com/pricing.
- Activate the new license key on your device:
getwebp auth XXXX-XXXX-XXXX-XXXXVerifying license...
✓ Activated! Starter plan unlocked.
- Confirm the upgrade took effect:
getwebp statusVersion : 1.0.1
Mode : Starter
License : xxxx-xxxx-xxxx-A1B2
Expires : 2027-04-01
Devices : 1 / 3 used
If you are upgrading from Starter to Pro with a new key, run getwebp auth with the new key. The old activation is replaced automatically -- there is no need to log out first.
Tip: Your existing license key may be upgraded in place (depending on how the upgrade was purchased). Check your email or dashboard for details.
Upgrade the CLI Version#
Binary Download (All Platforms)#
This is the standard upgrade path for all platforms.
- Download the latest binary for your platform from the Releases page.
| Platform | Binary |
|---|---|
| macOS Apple Silicon (M1/M2/M3/M4) | getwebp-macos-arm64 |
| macOS Intel | getwebp-macos-x64 |
| Linux x64 | getwebp-linux-x64 |
| Windows x64 | getwebp-windows-x64.exe |
- Replace the existing binary.
macOS / Linux:
# Download and rename
mv getwebp-macos-arm64 getwebp # adjust for your platform
chmod +x getwebp
# Replace the existing binary
sudo mv getwebp /usr/local/bin/If macOS blocks the new binary, remove the quarantine attribute:
xattr -cr /usr/local/bin/getwebpWindows:
Replace getwebp.exe in the directory on your PATH (e.g., C:\Tools\getwebp.exe) with the newly downloaded file.
- Verify the download integrity (optional but recommended):
# macOS / Linux
shasum -a 256 -c getwebp-macos-arm64.sha256# Windows (PowerShell)
$expected = (Get-Content getwebp.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash getwebp.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -eq $actual) { Write-Host "Verified OK" } else { Write-Host "MISMATCH" }Verify the Upgrade#
getwebp --versionExpected output (example):
getwebp/1.0.1
Your license activation carries over automatically. No re-authentication is needed after a version upgrade -- the config file and stored token remain intact.
# Confirm your license is still active
getwebp statusMigrate to a New Device#
GetWebP licenses are bound to the device where they are activated. Each license has a device limit (visible via getwebp status). To move your license to a new machine, you must free the device slot on the old machine first.
Step 1 -- Deactivate the Old Device#
On the old device, run:
getwebp logout? Confirm unbind license from this device? This cannot be undone. (y/N) y
✓ Successfully unbound. This device is now on the Free plan.
This contacts the server, removes the device binding, and clears the local token. For scripts or CI, use --force to skip the confirmation prompt:
getwebp logout --forceImportant:
getwebp logoutrequires network access. If you cannot connect, see Emergency: Old Device Unavailable below.
Step 2 -- Install on the New Device#
Follow the standard installation steps for your platform. See Getting Started -- Installation.
Step 3 -- Activate on the New Device#
On the new device, run:
getwebp auth XXXX-XXXX-XXXX-XXXXVerifying license...
✓ Activated! Starter plan unlocked.
Verify:
getwebp statusEmergency: Old Device Unavailable#
If the old device is lost, broken, or otherwise inaccessible:
- Go to your GetWebP Dashboard.
- Find the device under your license and remove it manually.
- Activate on the new device with
getwebp auth.
If you have reached your device limit and cannot access the dashboard, contact support via the website.
Config File Compatibility#
Config Location#
GetWebP stores its configuration (license token and status cache) in a platform-specific directory:
| Platform | Default Path |
|---|---|
| macOS | ~/Library/Preferences/getwebp-nodejs/config.json |
| Linux | ~/.config/getwebp-nodejs/config.json |
| Windows | %APPDATA%\getwebp-nodejs\config.json |
You can override the config directory by setting the GETWEBP_CONFIG_DIR environment variable:
GETWEBP_CONFIG_DIR=/custom/path getwebp statusMachine-Bound Encryption#
The config file is encrypted using a key derived from your machine's hardware ID (via node-machine-id). This means:
- Config files cannot be copied between machines. A config file from one device will fail to decrypt on a different device.
- Do not back up config files for use on other machines. The token inside will be unreadable.
- If your machine ID changes (e.g., major hardware replacement, OS reinstall that changes the system UUID), the existing config may become unreadable. In that case, delete the config file and re-activate with
getwebp auth.
If the machine ID cannot be read (e.g., in certain containerized environments), the CLI falls back to a key derived from the hostname and username. Changing either of these will invalidate the stored config.
Upgrading Config Across Versions#
- v2.0.0 to v2.1.0: No config migration required. The config schema is unchanged between these versions.
- Pre-2.0.0 to 2.0.0+: Version 2.0.0 introduced an entirely new config system. If you previously used a pre-2.0.0 version, the old config is ignored. Run
getwebp authto activate your license under the new system.
Breaking Changes by Version#
v2.1.0 (2026-04-01)#
| Change | Impact | Action Required |
|---|---|---|
| Recursive scanning is now off by default | Directories are no longer scanned recursively unless -r is passed | Add -r to any scripts or CI pipelines that relied on automatic recursive scanning |
Previously, Pro-tier users had recursive scanning enabled by default. Starting in v2.1.0, all tiers require the explicit -r flag.
Before (v2.0.0):
# Recursively processed subdirectories automatically (Pro)
getwebp convert ./imagesAfter (v2.1.0+):
# Must pass -r explicitly
getwebp convert ./images -rOther changes in v2.1.0 (non-breaking):
- New flags:
--concurrency,--dry-run,--skip-existing,--verbose,--debug - SIGINT (Ctrl+C) now performs graceful shutdown, cleaning up partial files
- macOS Intel binary now available
- SHA256 checksum files included in releases
v2.0.0 (2025-01-01)#
Version 2.0.0 was a complete rewrite. If you are upgrading from a pre-2.0.0 version:
| Change | Impact | Action Required |
|---|---|---|
| New binary distribution | CLI is now a standalone compiled binary (no Node.js required) | Download the new binary from getwebp.com/download |
| New licensing system | RS256 JWT with device binding replaces the old system | Run getwebp auth with your license key to re-activate |
| Config format changed | Old config files are not compatible | Delete old config; re-activate with getwebp auth |
| Free tier introduced | Unlicensed usage now capped at 10 files per run with 3s delay | Activate a license to remove limits |
| Custom quality restricted (initially) | -q was Pro-only in v2.0.0 (later opened to all tiers in v2.1.0) | Upgrade to Pro or wait for v2.1.0 if quality control is needed |
| JSON output format | New structured JSON schema for --json output | Update any scripts that parse JSON output |
FAQ#
Do I need to log out before upgrading the CLI version?#
No. Version upgrades do not affect your license. Simply replace the binary and your activation remains valid.
Can I run different CLI versions on the same machine?#
Yes, but only one binary should be on your PATH at a time. The config file is shared, so both versions would read the same license token. Avoid running very different major versions simultaneously.
What happens if I forget to log out before switching devices?#
Your license's device slots remain occupied. Use the GetWebP Dashboard to remove the old device remotely, then activate on the new device.
My config file seems corrupted after a hardware change. What do I do?#
Delete the config file and re-activate:
# macOS
rm ~/Library/Preferences/getwebp-nodejs/config.json
# Linux
rm ~/.config/getwebp-nodejs/config.json
# Windows (PowerShell)
Remove-Item "$env:APPDATA\getwebp-nodejs\config.json"Then re-activate:
getwebp auth XXXX-XXXX-XXXX-XXXXI upgraded my plan but getwebp status still shows the old tier.#
Run getwebp auth with the new (or same) license key to refresh the local token. If the license was upgraded in place, getwebp status may need a network connection to fetch the updated status from the server.
Links: