Apple Silicon核心arm64 架构MAC部署openclaw
背景:
周末尝试部署了一下最近大火的小龙虾 。发现arm64的装起来跟普通的似乎不太一样 。特地写个文档给大家解决一下问题
我的mac是 Apple Silicon(M1/M2/M3/M4,arm64 架构)。
环境准备:
注意命令必须运行在原生的终端里
首先检查一下你的node版本
node -v确认node架构
node -e "console.log(process.platform, process.arch)"- 如果输出 darwin x64 → 就是 Rosetta/x64 问题。
- 应该输出 darwin arm64 才对。
如果node版本比较低或者架构不对。比如14.几 建议升级到最新版22
nvm install 22 --reinstall-packages-from=current # 这会自动选 arm64 二进制适合mac的新芯片
切换并设为默认
nvm use 22 nvm alias default 22验证 arm64
node -e "console.log(process.platform, process.arch)" # 必须是 darwin arm64 node -v # v22.x.x which node # 应该在 ~/.nvm/versions/node/v22.../bin/node arch # 输出 arm64确保 Xcode Command Line Tools 已安装
xcode-select --install 安装一下homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 开始安装:
直接就是一条命令行
curl -fsSL https://openclaw.ai/install.sh | bash然后就会自动弹出设置菜单,首先让你确认安全风险,Yes就完事了。

下一个设置项是Onboarding mode,QuickStart就好。新手接入,我先建议不要搞太多设置,多数设置可以设置为默认,反正后期都是可以修改的。

下一步选择模型提供商。由于我们要薅OpenRouter免费token的羊毛,就选OpenRouter。

于此同时,我们去OpenRouter创建一个API_KEY。点击OpenRouter的Step-3.5页面,然后Create API KEY,名字随便起,例如OpenClaw,创建API_KEY,并保存好KEY。

然后返回OpenClaw设置页面,粘贴你的Key。

下一步就是选模型,由于OpenRouter有很多模型,你可能要在这一步翻一下,模型是按字母排序的,往下翻就找到了stepfun/step-3.5-flash:free。

就完成了Step 3.5 Flash的接入。下一步就是接入飞书。之前的教程会让你用个插件,但OpenClaw最新版本已经官方集成了飞书/Lark接入,就不再需要插件了

下一步是配置Skill。这个可以自己看着弄,例如接入苹果记事本,bear记事本等工具。

剩下的步骤,可以先选择跳过,例如Google的API设置等

最后是启动方式,

TUI就是在terminal里跑的UI,随便问个问题,看看接入成功没。

可以看到,现在接入成功了,本地跑Agent,免费的模型API接口,总共花费:0。
最后,还得开Gateway,才能实现和通信软件互通信息。
openclaw gateway start Gateway dashboard飞书配置
注:在配置飞书时,可能会出现找不到模块zod的错误

如果遇到,则npm install zod即可解决。
然后我们去飞书开放平台,然后在开发者后台,点击「创建企业自建应用」

起个自己喜欢的名字,然后进入应用后台,在「凭证和基础信息」这里,把App ID和App Secret复制下来

然后添加个机器人的能力

配置机器人。权限添加,点击这个按钮,

导入下面这段JSON,就自动配置好了基础的权限
{ "scopes": { "tenant": [ "contact:user.base:readonly", "im:chat", "im:chat:read", "im:chat:update", "im:message", "im:message.group_at_msg:readonly", "im:message.p2p_msg:readonly", "im:message:send_as_bot", "im:resource" ], "user": [ "contact:contact.base:readonly" ] } }订阅方式:使用长连接接收事件,并添加事件「接受消息」

在回调设置,也是一样:使用长连接接收事件

最后,点击左上方的「创建版本」。飞书这边的设置就好了

然后到OpenClaw这边设置。去OpenClaw的后台,选择Channels,在feishu这项设置

翻到下面,把前面复制的App ID和App Secret粘贴到对应的位置

然后这个时候你从飞书发消息给OpenClaw,应该会出现这个情况。

解决方法很简单,选中那段话,复制下来,粘贴到电脑端的OpenClaw对话框里。就完成配对了。

再次试验,成功!

一些报错:
1. [1/3] Preparing environment · Homebrew not found, installing ✗ Installing Homebrew failed — re-run with --verbose for details Warning: Running in non-interactive mode because stdin is not a TTY. ==> Checking for sudo access (which may request your password)... Need sudo access on macOS (e.g. the user 0100474 needs to be an Administrator)!
OpenClaw 的 install.sh 脚本会自动检测并安装 Homebrew(如果没有),而 Homebrew 的官方安装脚本需要一次 sudo 来创建 /usr/local 等目录(后续用 brew install 东西就不需要 sudo 了)。
但因为你用 curl ... | bash 管道方式运行,整个过程是非交互的(stdin 不是终端),sudo 没法弹出密码输入框 → 直接失败。
运行 Homebrew 官方安装命令(它会提示输入密码):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"2. 提示node版本是xxxx 然后开始安装 node 随后失败
手动安装下
如果node版本比较低或者架构不对。比如14.几 建议升级到最新版22
nvm install 22 --reinstall-packages-from=current # 这会自动选 arm64 二进制适合mac的新芯片
切换并设为默认
nvm use 22 nvm alias default 22验证 arm64
node -e "console.log(process.platform, process.arch)" # 必须是 darwin arm64 node -v # v22.x.x which node # 应该在 ~/.nvm/versions/node/v22.../bin/node arch # 输出 arm643. > [email protected] postinstall
> node ./dist/cli/cli.js postinstall
[node-llama-cpp] llama.cpp is not supported under Rosetta on Apple Silicone Macs. Ensure that you're using a native arm64 node.js installation.
[node-llama-cpp] process.platform: darwin, process.arch: x64
[node-llama-cpp] troubleshooting: https://node-llama-cpp.withcat.ai/guide/troubleshooting#illegal-hardware-instruction
npm info run [email protected] postinstall { code: 1, signal: null }
npm verbose stack Error: command failed
npm verbose stack at promiseSpawn (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:22:22)
npm verbose stack at spawnWithShell (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:124:10)
npm verbose stack at promiseSpawn (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:12:12)
npm verbose stack at runScriptPkg (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script-pkg.js:77:13)
npm verbose stack at runScript (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script.js:9:12)
npm verbose stack at /Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js:329:17
npm verbose stack at run (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:67:22)
npm verbose stack at /Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:84:9
npm verbose stack at new Promise (<anonymous>)
npm verbose stack at callLimit (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:35:69)
npm verbose pkgid [email protected]
npm error code 1
npm error path /Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/openclaw/node_modules/node-llama-cpp
npm error command failed
npm error command sh -c node ./dist/cli/cli.js postinstall
npm verbose cwd /Users/jyxc-dz-0100474
npm verbose os Darwin 25.3.0
npm verbose node v22.12.0
npm verbose npm v10.9.0
npm verbose exit 1
npm verbose code 1
npm error A complete log of this run can be found in: /Users/jyxc-dz-0100474/.npm/_logs/2026-03-03T08_52_52_856Z-debug-0.log
核心问题:你的 Node.js 是 x64(Intel 架构),但你的 Mac 是 Apple Silicon(M1/M2/M3/M4,arm64 架构)。这意味着 Node 运行在 Rosetta 2 模拟层下,而 node-llama-cpp(基于 llama.cpp)不支持在 Rosetta 上运行(因为 llama.cpp 用到了 ARM 特定的指令或 Metal GPU 加速,Rosetta 会触发 "illegal hardware instruction")。
看上面 重新装一个arm的node
记得一定要用苹果自带的终端。因为别的终端通常都是x64架构的
nvm alias default 14 #先把node版本切换掉。不然不能卸载常用node 卸载当前 x64 Node(清理掉问题版本): nvm uninstall 22 # 或 nvm uninstall 22.12.0 如果是精确版 nvm uninstall --lts # 如果你设了默认