Claude Desktop “Host Claude Code binary not available” 修复方案
摘要 Claude Desktop Windows版启动时出现"Host Claude Code binary not available"错误,原因是依赖的claude.exe二进制文件下载失败。解决方案是手动将已通过npm安装的claude.exe复制到指定目录:C:\Users\[用户名]\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCa
Claude Desktop “Host Claude Code binary not available” 修复方案
问题描述
Claude Desktop(MSIX Windows Store 版本)启动后,对话时提示组件异常:
Host Claude Code binary not available. Check that the download completed.
根因分析
- Claude Desktop 内部依赖一个独立的 Claude Code 二进制文件 (
claude.exe) 来执行编程任务 - 该二进制文件由 Claude Desktop 自动从 Anthropic 服务器下载到用户数据目录
- 由于网络限制(DNS 解析失败
ERR_NAME_NOT_RESOLVED),自动下载失败 - 二进制文件缺失导致 Claude Desktop 无法启动 Claude Code 组件
解决方案
前提条件
已通过 npm 全局安装 Claude Code CLI:
npm install -g @anthropic-ai/claude-code
二进制文件位于:
C:\Users\zhang\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\bin\claude.exe
修复步骤
1. 确定目标路径
Claude Desktop MSIX 版(3p 部署模式)的用户数据目录为:
C:\Users\zhang\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\Claude-3p
Claude Code 管理器 (hPi 类) 的存储路径构造方式为:
this.storageDir = path.join(app.getPath("userData"), "claude-code");
因此二进制文件应位于:
{userData}/claude-code/{version}/claude.exe
即:
{package}\LocalCache\Local\Claude-3p\claude-code\{version}\claude.exe
所需版本号(从 app.asar 中的 manifest 获取):2.1.138
2. 创建目录并复制文件
mkdir -p "C:\Users\zhang\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\Claude-3p\claude-code\2.1.138"
cp "C:\Users\zhang\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\bin\claude.exe" "C:\Users\zhang\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\Claude-3p\claude-code\2.1.138\claude.exe"
3. 创建 .verified 标记文件
touch "上述目录/.verified"
.verified 文件是二进制下载完整的标记。binaryExistsForTarget() 方法会同时检查 claude.exe 和 .verified 两个文件的存在性。
4. 重启 Claude Desktop
完全退出 Claude Desktop(包括系统托盘图标),然后重新打开。
验证
重启后发起对话,Claude Code 组件应正常加载,不再报错。
技术细节
关键代码路径(来自 app.asar 主进程 .vite/build/index.js):
-
Claude Code 管理器初始化(
hPi类构造函数):this.storageDir = path.join(app.getPath("userData"), "claude-code"); this.requiredVersion = "2.1.138"; // 从内嵌 manifest 读取 -
二进制文件就绪检查(
getBinaryPathIfReady):async getBinaryPathIfReady() { const A = await this.getLocalBinaryPath(); // 环境变量覆盖 if(A) return A; const t = this.getHostTarget(); // 检查 {storageDir}/{version}/claude.exe + .verified if(await this.binaryExistsForTarget(t, this.requiredVersion)) return this.getBinaryPathForTarget(t, this.requiredVersion); // 回退:检查其他已安装版本 return await this.getAnyInstalledBinaryPathForTarget(t); } -
二进制文件存在性检查(
binaryExistsForTarget):async binaryExistsForTarget(A, t) { const i = this.getBinaryPathForTarget(A, t); // claude.exe 路径 const r = path.join(A.storageDir, t, ".verified"); // .verified 路径 try { await fs.promises.access(i, X_OK); await fs.promises.access(r); } catch { return false; } return this.checkCachedBinaryHeader(A, t, i); // Windows 始终返回 true } -
HostLoop 调用会检查
hostBinaryPath:if (!s) throw new Error("Host Claude Code binary not available. Check that the download completed.");
注意事项
- Claude Desktop 更新后,内部
requiredVersion可能变化,届时需要重新执行复制操作 - 如果不想手动维护,也可将
claude.exe所在目录加入系统 PATH,确保where claude能找到 - 不要在多处冗余复制二进制文件(单个 234MB),只需放在
userData/claude-code/{version}/下即可
更多推荐



所有评论(0)