1 前言
从 2.1.113 版本起,Claude Code 已经不再发布纯 js 文件,仅发布 Bun 打包过的二进制文件。
按照当前的现状,用户想要在鸿蒙 PC 原生环境上使用最新版本 Claude Code 已经变成了一件几乎不可能的事情:官方不发布鸿蒙版二进制,且代码不开源,开发者无法自行移植。
要解决这个问题,有两条路线可以走:
- 走 Linux 兼容路线,直接将 aarch64-linux-musl 平台的制品放到鸿蒙系统上跑。
- 用 unbun 之类的提取工具,将 Claude Code 的 js 部分从二进制文件中提取出来,再放到自己准备好的 Bun 或 Node.js 运行时里面去运行。
由于方案 2 的产物分发会存在法务合规问题,所以本文基于方案 1 进行操作。
2 二进制文件获取
musl 版本的二进制文件,获取途径有两种方式:
- 从官网链接下载(例如:https://downloads.claude.ai/claude-code-releases/2.1.206/linux-arm64-musl/claude)。这要求你的下载设备要挂国外代理,否则连不通 Claude Code 的官网。
- 用 npm 安装。当前 Claude Code 仍在通过 npm 发包,但这个分发方式已经被标记为废弃,以后可能就不可用了。
这里为了方便读者复现(读者不一定有国外代理可用),仍使用 npm 的方式获取二进制文件
sh
cd ~
# 使用 Harmonybrew (https://atomgit.com/Harmonybrew) 安装 node
https://atomgit.com/Harmonybrew
brew install -y node
mkdir npm-cc
cd npm-cc
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
npm init -y
# 为了确保文档可复现,这里锁定了我写文档时使用的版本 2.1.206
# 如果你需要最新版本,可以改成 @latest
npm install --force @anthropic-ai/claude-code-linux-arm64-musl@2.1.206
cd ~
cp npm-cc/node_modules/@anthropic-ai/claude-code-linux-arm64-musl/claude ./
现在,我们在家目录下得到了 claude 可执行文件,文件体积为 200+ MB。
3 二进制签名
在鸿蒙 PC 上运行的 ELF 文件必须要拥有代码签名,我们需要使用签名工具对其进行签名。
这里不使用官方的 binary-sign-tool 来签名,而是使用我自己实现的签名工具来签名
sh
cd ~
# 使用 Harmonybrew 安装 git 和 ohos-sdk,分别用来下载代码和编译代码
brew install -y git ohos-sdk
# 下载并编译签名工具
git clone https://github.com/hqzing/ohos-bst-light.git
cd ohos-bst-light
clang self-sign.c -o self-sign
# 用签名工具对 claude 进行签名
cd ~
./ohos-bst-light/self-sign claude
不使用 binary-sign-tool 的原因:
binary-sign-tool 做签名操作的时候会破坏 claude 可执行文件的 ELF 结构,导致 Bun 运行时无法正确识别到 ELF 文件中携带的资源文件,进程启动后不能正确进入 Claude Code 业务逻辑。最终表现就是:执行 ./claude 能拉起进程,但展示出来的是 Bun 运行时的帮助文档,而不是 Claude Code 的 TUI 界面。
4 规避 syscall 拦截问题
claude 可执行文件里面使用到了一个名为 close_range 的 syscall,这个 syscall 会被鸿蒙 PC 的 seccomp 拦截。
我自己实现了一个垫片库,可以在 close_range 下发内核之前将其拦截,替换成自己实现的退化处理逻辑。
将它下载并编译,准备给下一个步骤使用
sh
cd ~
git clone https://github.com/hqzing/close-range-shim.git
cd close-range-shim
clang -shared -fPIC -o libclose_range_shim.so close_range_shim.c
5 配置模型后使用
通过环境变量的方式配置 DeepSeek 模型后,运行 claude
sh
cd ~
# 配置环境变量,让 Claude Code 使用 DeepSeek API
# DeepSeek 本身就有提供 anthropic 格式的 API,因此不需要再专门引入 Claude Code Router 之类的转换器
# 参考 DeepSeek 官方文档:https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/claude_code
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-xxx
export ANTHROPIC_MODEL=deepseek-v4-flash
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-flash
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-flash
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_TMPDIR=/data/storage/el2/base/cache
export LD_PRELOAD=/storage/Users/currentUser/close-range-shim/libclose_range_shim.so
./claude
现在 claude 能正常启动。启动后会自动进入到选择皮肤主题和信任文件夹的操作界面。一路按下回车后,进入 Claude Code 的 TUI 主界面。

输入提示词,可以看到任务成功执行。

提示:如果你需要使用其他厂商的 OpenAI 格式 API,可以使用 Harmonybrew 下载 Claude Code Router 进行接口转换:
brew install claude-code-router。