OpenClaw让老Mac再战十年

2015 MacBook 部署 OpenClaw:老 Mac 再战十年 & 苹果的黑心秘密

开篇:一台被判了死刑的 MacBook

我有一台 2015 年的 MacBook Pro。

放了快一年没动。因为——风扇狂转,桌面卡到连鼠标都拖不动,像一台正在发高烧的暖手宝。

每个见过它的人都说同一句话:

"2015 年的电脑了,换一台吧。"

说实话,我也信了。都 2026 年了,一台十年前的电脑,能干嘛?

直到有一天晚上,我躺在床上,想给我的 AI Agent 项目找一台专用服务器。买云服务器太贵,树莓派性能不够。突然想到——角落里那台"报废"的 MacBook,不是还有 16G 内存吗?

要不,试试?

我没有走过去打开它。我打开了我的 Mac mini,输入一行命令:

ssh username@192.xxx.xxx.xxx

用 Claude Code 远程"附身"到了那台老电脑上。

接下来发生的事,彻底改变了我对"老电脑该扔了"这句话的看法。


Part 1:给老 Mac 做了个全面体检,结果很有意思

远程体检:硬件全部合格

我让 Claude Code 给这台老 MacBook 做了一次全面体检。结果出来,我愣了。

| 项目 | 状态 | |------|------| | CPU | i7 四核 2.8GHz ✅ | | 内存 | 16GB ✅ | | 硬盘 | 1TB SSD ✅ | | 电池 | 205 次循环,状态正常 ✅ | | SSD 健康度 | SMART 验证通过 ✅ |

硬件全部正常。

一台 i7 + 16G + 1T SSD 的电脑,放到今天跑个 Agent 都绰绰有余。它凭什么"该扔了"?

真正的凶手:AppleSpell

继续查。CPU 占用排行:

AppleSpell     → 99.2% CPU
CacheDelete    → 62% CPU
diagnosticd    → 35% CPU

三个进程把四核 CPU 压满了。其中排名第一的,是一个叫 AppleSpell 的东西——苹果自带的拼写检查服务。

一个拼写检查,吃 99% CPU?

继续查。磁盘 99% 满。 932GB 用了 903GB。

真相出来了。

因果链:磁盘满 → 死循环 → 风扇狂转

整个过程是这样的:

磁盘 99% 满
    ↓
AppleSpell 想写缓存 → 写不进去
    ↓
它不休息,死循环重试 → CPU 99%
    ↓
CacheDelete 拼命想腾空间 → CPU 62%
    ↓
diagnosticd 疯狂记录错误日志 → CPU 35%
    ↓
三个进程把 CPU 压满 → 温度飙升 → 风扇狂转

一个正常的软件,磁盘满了应该怎么做?提醒用户,然后 sleep 等待。 这是任何一个初级程序员都知道的基本常识。

但 AppleSpell 不。它选择死循环重试。一个来自全球市值最高科技公司的系统服务,连这个都不做。

我觉得挺有意思的。

杀不死的进程

我尝试杀掉它:

kill AppleSpell 系统秒复活
kill -9 AppleSpell 系统秒复活
launchctl disable 无效
launchctl bootout 依然复活

四种方式全试了,全部无效

AppleSpell 是 macOS 的 XPC 系统服务,享受"杀不死"的特权。系统检测到它被关闭,会自动帮它重启。

你关掉,它复活。你再关,它再复活。无限循环。

唯一的解法:一条普通人根本不知道的命令

兜了一大圈,最终解法是这样的:

defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
defaults write -g WebAutomaticSpellingCorrectionEnabled -bool false
defaults write -g NSAllowContinuousSpellChecking -bool false

三条命令,关闭全局拼写检查。然后重启。

AppleSpell 不再运行。风扇安静了。CPU 回到正常水平。

我不下结论,但你品品这三个事实

我没有资格说苹果是故意的。但我可以摆三个事实,你自己品:

事实一:这个服务杀不死。

它是 XPC 系统服务,kill 了会自动复活。普通用户没有任何办法通过图形界面关掉它。你在"系统偏好设置"里找不到开关。

事实二:磁盘满了它不休息。

任何一个合格的程序员都知道:资源不足时应该 sleep 等待或者优雅退出。但这个服务选择了死循环重试。一个初级 bug?来自苹果?来自一个存在了十几年的系统服务?

事实三:解法藏在命令行。

defaults write 这种命令,99.9% 的 Mac 用户不知道它的存在。这不是什么高级黑客技术,就是一条修改系统配置的命令。但它不在任何菜单里,不在任何设置界面里。

三个事实放在一起,结果是什么?

一台硬件完好的电脑 → 被一个软件问题逼成暖手宝 → 普通人修不好 → "电脑太老了,该换新的了"

我不妄下定论。但我相信,群众的眼睛是雪亮的。

你搜一下 "AppleSpell high CPU" —— 这不是我一个人的问题。从 2011 年到 2025 年,十四年,苹果论坛、Reddit、Stack Overflow 上全是一样的投诉。十四年,没修。

是他们修不好吗?三条 defaults write 命令就能解决的事?

我真的不下结论。你自己品。


Part 2:3 条命令 + OpenClaw,老 Mac 再战十年

修好了,然后呢?

风扇安静了,磁盘从 99% 清理到只剩 2%。这台电脑"活"了。

但我不想让它只是"活着"。我要让它干活。

目标:把它变成一台 AI Agent 专用服务器,部署 OpenClaw。

OpenClaw 是什么

OpenClaw 是一个开源 AI Agent 框架。你可以把它理解成——给 AI 装上手和脚。

  • 大脑(Brain):接入 Claude、GPT 这样的大模型
  • 双手(Hands):能执行命令、操作文件、控制浏览器

相当于让 AI 从"只会说话"变成"能干活"。

但它有个问题:默认不隔离。 Agent 拥有完整的用户权限,能读写你所有的文件、访问任何网站。

换句话说:你给 AI 装了手脚,但没装笼子。

安全架构:给 AI 装笼子

我不打算把 OpenClaw 跑在主账户上。万一它"发疯"了,我的数据全完了。

解法很简单:macOS 原生的多用户隔离。

我创建了一个标准用户(非管理员),专门跑 Agent:

sudo sysadminctl -addUser agent-user -fullName "Agent User" \
  -password "你的密码" -home /Users/agent-user

然后把主账户的权限锁死:

chmod 700 /Users/你的用户名    # 只有自己能读写

现在的架构长这样:

即使 OpenClaw 里的 AI Agent 完全失控了,它也只能在自己的用户目录里折腾。碰不到我的数据,碰不到系统配置,也不能 sudo 提权。

零成本。不需要 Docker,不需要虚拟机。只用了 macOS 自带的用户权限。

Node.js 22:官方不支持,但能跑

OpenClaw 需要 Node.js 22。但官方说:

"Node.js 22 pre-built binaries do not officially support macOS Catalina."

试试呗?我直接下载了预编译二进制文件:

curl -o ~/node-v22.tar.gz https://nodejs.org/dist/v22.x.x/node-v22-darwin-x64.tar.gz
tar xzf ~/node-v22.tar.gz -C ~/local/node --strip-components=1
echo 'export PATH=$HOME/local/node/bin:$PATH' >> ~/.zshrc

能跑。完美运行。

"官方不支持" ≠ "不能用"。 尤其是预编译二进制文件,很多时候只是官方不测试了,实际完全兼容。试一下成本为零,成功概率很大。

网络配置:纯命令行搞定

这台电脑是远程 SSH 操作的,没法点 GUI。但 OpenClaw 要调用云端 API,需要网络能通。

关键发现:很多 GUI 软件的核心引擎可以独立运行。 不用打开图形界面,直接命令行启动底层服务就行。

这个思路通用性很强——下次遇到类似场景(远程服务器、没有桌面环境),先看看你用的 GUI 工具底下有没有 CLI 版本。大概率有。

网络调通之后,验证 API 可达:

curl https://api.example.com/health
# 200 OK ✅

OpenClaw 安装

# 跳过本地 LLM 编译(我们用云端 API)
npm install -g openclaw@latest --ignore-scripts
 
# 非交互式初始化
openclaw onboard --non-interactive --accept-risk

安装完成。OpenClaw v2026.2.6-3。

SSH 安全加固:从裸奔到铁桶

最后一步,锁门。

原来的 SSH 配置有多离谱?用的是弱密码,而且密码登录是开着的。

加固前 vs 加固后:

| 项目 | 之前 | 之后 | |------|------|------| | 密码登录 | 开启(弱密码) | 关闭 | | Root 登录 | 允许 | 禁止 | | 允许的用户 | 所有人 | 仅管理员 | | 认证方式 | 密码 + 密钥 | 仅密钥 | | 防火墙 | 关闭 | 开启 + 隐身 | | 最大尝试次数 | 6 | 3 | | 登录超时 | 2 分钟 | 30 秒 |

现在这台机器对外不响应 ping(隐身模式),只接受密钥认证,而且只允许管理员通过 SSH 登录。Agent 用户连 SSH 都进不来。

最终状态

| 项目 | 状态 | |------|------| | 硬件 | i7 / 16GB / 1TB SSD,完全正常 | | 磁盘 | 11G 已用 / 932G 总量(2%) | | AppleSpell | 已消灭 | | 风扇 | 安静 | | SSH | 密钥认证 + 防火墙 + 隐身 | | Agent 用户 | 标准用户,Node.js 22,OpenClaw 已安装 | | 网络 | 云端 API 可达 |

一台被判了死刑的 2015 MacBook Pro,现在是我的 AI Agent 专用服务器。


Part 3:你的老电脑,可能是一座金矿

如果是三年前的我

说句实话。如果是三年前的我碰到这台电脑——风扇狂转、桌面卡死——我 100% 会直接把它挂闲鱼卖了。1500 块,爱要不要。

那时候我不会 SSH,不会命令行,不会看 CPU 进程,更不会想到去查一个叫 AppleSpell 的东西到底在干嘛。

我只会得出一个结论:老了,该换了。

但反过来,如果我是一个专业程序员呢?他碰到这个问题,大概 10 分钟就搞定了。kill 不行就 defaults write,搜一下 Stack Overflow,解决,关机,不会多想一秒。

他不会觉得这有什么值得说的。因为对他来说,这就是个小 bug。

恰好是我这种人——从"完全不懂"到"刚刚学会"——才会有这个观察角度。

不懂的人,看不到问题。太懂的人,不觉得是问题。

只有刚学会的人,才会停下来想:等一下,这不对吧?

这也是我觉得学 AI、学命令行、学 Claude Code 最大的价值——不是让你变成程序员,而是让你看见以前看不见的东西

很多"理所当然"的事情,其实一点都不理所当然。只是你以前没有工具去验证。

三个"原来如此"

折腾完回头看,有几个事我以前想错了。

"官方不支持" ≠ "不能用"。

Node.js 22 说不支持 Catalina。我直接下载预编译版本——能跑。

很多时候,"官方不支持"只是说"我们不测试了",但底层兼容性还在。

试一下成本为零。最坏的结果是不行,你什么都没损失。

老电脑跑不动日常,但跑 AI Agent 绰绰有余。

你觉得 2015 年的电脑慢,是因为你让它跑 macOS Sonoma + Chrome 20 个标签 + 微信 + 飞书。

但如果它只跑一件事——一个 AI Agent 服务器——i7 + 16G 内存完全够用。

老电脑不是不行了,是你给它的任务太杂了。专机专用,它还能再战十年。

GUI 软件的核心引擎可以独立运行。

很多 GUI 应用不需要打开图形界面,底下的核心引擎可以直接在命令行跑。

这个发现对我冲击很大:原来漂亮的图形界面只是"壳",底下都藏着一个命令行工具。学会绕过 GUI 直接操控核心,你对电脑的控制力会完全不一样。

Vibe Coding 的力量

整个过程,我不是在"精通命令行"。我是在用 Claude Code 远程操控另一台电脑。

从一年前"不敢碰终端",到现在"用 AI 把魔爪伸向另一台电脑并且效果显著"。

这就是 Vibe Coding——你不需要精通每一条命令,但你要知道怎么让 AI 帮你执行。

我不会背 sysadminctl 的参数,但我知道跟 Claude 说"帮我创建一个不能 sudo 的标准用户",它就能搞定。

工具在变,人和电脑的关系也在变。

以前:先学命令,再操作电脑。

现在:告诉 AI "我要干嘛",它去搞定"怎么干"。


你手里可能也有一台"被判了死刑"的电脑

如果你家里也有一台吃灰的老 Mac,先别急着扔。

花 10 分钟查一下:

  1. 查硬件:打开"关于本机",看看 CPU、内存、硬盘。i5 + 8G 以上就有救
  2. 查磁盘:如果磁盘快满了,先清理。这是万恶之源
  3. 查 CPU:打开活动监视器,看看是不是 AppleSpell 或其他系统进程在吃 CPU

如果确认是 AppleSpell 的问题,3 条命令:

defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
defaults write -g WebAutomaticSpellingCorrectionEnabled -bool false
defaults write -g NSAllowContinuousSpellChecking -bool false

然后重启。

修好以后,如果你对 AI Agent 感兴趣,可以像我一样给它装个 OpenClaw。老电脑变 AI 服务器,零成本。

至于苹果为什么这么设计——我说了,我不下结论。

但如果你也查了,也发现了同样的问题,欢迎来评论区说说你的情况。

到底有多少台"该换了"的老 Mac,其实只需要三条命令就能救活?

我很好奇。我相信你也很好奇。


我是罗老师,一个用 AI 搞事情的人。关注我,看更多"别人不会告诉你"的技术真相。

想看更多这种实战拆解?扫码加入我的知识星球,100 个 AI 实战案例源码全开放,有问必答。