Summary
npx create-webclaw fails 100% of the time on Windows. The error message ('cargo' is not recognized) misleads users into installing Rust, but Rust doesn't fix it — there are 3 bugs that prevent the Windows prebuilt binary from ever being used.
Bug 1: Asset name mismatch
In getAssetName() (around L223-239 in index.mjs, npm package create-webclaw@0.1.4):
if (os === "win32" && a === "x64")
return `webclaw-mcp-x86_64-pc-windows-msvc.zip`;
But the actual asset on GitHub Releases is webclaw-v0.6.13-x86_64-pc-windows-msvc.zip (versioned, no mcp- infix). Same issue for all 5 other platform branches — they all hardcode the asset name pattern without the v{version}- prefix.
Result: the assets.find(a => a.name === assetName) lookup always returns undefined, so downloaded stays false and the script falls through to cargo install.
Bug 2: unzip doesn't exist on Windows
L478:
} else if (assetName.endsWith(".zip")) {
execSync(`unzip -o "${tarPath}" -d "${INSTALL_DIR}"`, {
stdio: "ignore",
});
}
Windows ships with tar but not unzip in PowerShell/cmd by default. Even if Bug 1 were fixed, this step would fail.
Bug 3: Silent GitHub API rate limit handling
L460-496 — when https://api.github.com/repos/0xMassi/webclaw/releases/latest returns 403 (rate limit), the catch {} block swallows it silently with the comment "Release not available yet — expected before first release". The user sees "No pre-built binary found" with no hint that the real failure was rate-limited.
Repro (Windows 11, Node 20+, GitHub CLI not required)
npx create-webclaw
# Output:
# Downloading webclaw-mcp...
# No pre-built binary found. Trying cargo install...
# 'cargo' is not recognized as an internal or external command
Suggested fix
// 1. Use the actual release tag_name instead of hardcoded strings
const release = JSON.parse((await download(`https://api.github.com/repos/${REPO}/releases/latest`)).toString());
const version = release.tag_name; // e.g. "v0.6.13"
// 2. Build asset names from version
function getAssetName(version) {
const os = platform();
const a = arch();
const targets = {
"darwin-arm64": "aarch64-apple-darwin",
"darwin-x64": "x86_64-apple-darwin",
"linux-x64": "x86_64-unknown-linux-gnu",
"linux-arm64": "aarch64-unknown-linux-gnu",
"win32-x64": "x86_64-pc-windows-msvc",
};
const key = `${os}-${a}`;
const target = targets[key];
if (!target) return null;
const ext = os === "win32" ? "zip" : "tar.gz";
return `webclaw-${version}-${target}.${ext}`;
}
// 3. Use platform-appropriate extraction
if (assetName.endsWith(".tar.gz")) {
execSync(`tar xzf "${tarPath}" -C "${INSTALL_DIR}"`, { stdio: "ignore" });
} else if (assetName.endsWith(".zip")) {
if (platform() === "win32") {
execSync(`powershell -Command "Expand-Archive -Path '${tarPath}' -DestinationPath '${INSTALL_DIR}' -Force"`, { stdio: "inherit" });
} else {
execSync(`unzip -o "${tarPath}" -d "${INSTALL_DIR}"`, { stdio: "ignore" });
}
}
// 4. Better rate-limit error
if (release.message?.includes("rate limit")) {
console.log(c("red", " GitHub API rate limit hit. Retry in a few minutes or use GITHUB_TOKEN env var."));
}
Manual workaround
Until fixed, Windows users can install manually:
gh release download v0.6.13 --repo 0xMassi/webclaw --pattern "*-x86_64-pc-windows-msvc.zip"
Expand-Archive webclaw-v0.6.13-x86_64-pc-windows-msvc.zip -DestinationPath webclaw-extracted -Force
New-Item -ItemType Directory -Force -Path ":USERPROFILE\.webclaw"
Copy-Item webclaw-extracted\webclaw-v0.6.13-x86_64-pc-windows-msvc\webclaw-mcp.exe ":USERPROFILE\.webclaw\webclaw-mcp.exe"
claude mcp add --scope user --transport stdio webclaw "C:/Users/Lenovo/.webclaw/webclaw-mcp.exe"
Environment
- Windows 11 Home China 10.0.26200
- Node.js (latest via npx)
- webclaw v0.6.13 (latest at time of issue)
- create-webclaw@0.1.4 (npm)
Summary
npx create-webclawfails 100% of the time on Windows. The error message ('cargo' is not recognized) misleads users into installing Rust, but Rust doesn't fix it — there are 3 bugs that prevent the Windows prebuilt binary from ever being used.Bug 1: Asset name mismatch
In
getAssetName()(around L223-239 inindex.mjs, npm packagecreate-webclaw@0.1.4):But the actual asset on GitHub Releases is
webclaw-v0.6.13-x86_64-pc-windows-msvc.zip(versioned, nomcp-infix). Same issue for all 5 other platform branches — they all hardcode the asset name pattern without thev{version}-prefix.Result: the
assets.find(a => a.name === assetName)lookup always returnsundefined, sodownloadedstays false and the script falls through tocargo install.Bug 2:
unzipdoesn't exist on WindowsL478:
Windows ships with
tarbut notunzipin PowerShell/cmd by default. Even if Bug 1 were fixed, this step would fail.Bug 3: Silent GitHub API rate limit handling
L460-496 — when
https://api.github.com/repos/0xMassi/webclaw/releases/latestreturns 403 (rate limit), thecatch {}block swallows it silently with the comment "Release not available yet — expected before first release". The user sees "No pre-built binary found" with no hint that the real failure was rate-limited.Repro (Windows 11, Node 20+, GitHub CLI not required)
Suggested fix
Manual workaround
Until fixed, Windows users can install manually:
Environment