Before installing any agent (OpenClaw, Hermes Agent, Claude Code, Codex, etc.), you must perform these three checks in order:
1. Platform Compatibility Check
Detect the OS and architecture using uname -s && uname -m and verify against supported platforms:
| Agent | Supported Platforms | Requirements |
|---|
| OpenClaw | All platforms | Requires Node.js >= 22.14.0 (v22.12.x and below will fail) |
| Hermes Desktop | Windows, macOS, Linux | Desktop app; uses Electron GUI + hermes CLI. |
| Claude Code (CLI) | All platforms | macOS/Linux: curl or brew; Windows: powershell or winget. (npm is deprecated) |
| Codex (CLI) | All platforms | Requires Node.js. On Windows, global npm path is %APPDATA%\npm |
| ChatGPT | macOS, Windows only | Official installer or Microsoft Store |
2. Node.js Version Check
For npm-based agents, verify Node.js meets the minimum version:
- OpenClaw:
>= 22.14.0 (Critical) - Codex (CLI):
>= 18.0.0
To install/upgrade Node.js via nvm (Linux/macOS):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 22
nvm use 22
node --version
To install Node.js on Windows (PowerShell):
Invoke-WebRequest -Uri "https://nodejs.org/dist/v22.14.0/node-v22.14.0-win-x64.zip" -OutFile "$env:TEMP\node.zip"
Expand-Archive -Path "$env:TEMP\node.zip" -DestinationPath "C:\nodejs" -Force
$nodePath = "C:\nodejs\node-v22.14.0-win-x64"
[Environment]::SetEnvironmentVariable("PATH", "$nodePath;" + [Environment]::GetEnvironmentVariable("PATH", "Machine"), "Machine")
& "$nodePath\node.exe" --version
Note: On Windows, you must close and reopen terminals for PATH changes to take effect.
3. Download Speed Test
Run this on the remote server to ensure the server can reach the source quickly:
For npm-based agents:
curl -o /dev/null -s -w "%{time_total}" https://registry.npmjs.org/openclaw/latest 2>/dev/null
For GitHub-hosted CLI installers:
curl -o /dev/null -s -w "%{time_total}" https://raw.githubusercontent.com 2>/dev/null
If the response time is > 5 seconds or times out, do not proceed. Ask the user for a VPN/proxy, a local installer file, or alternative mirrors.