为一件事折腾一下午真是常有的事:上周想把一组散落在不同文件夹的会议录音转成文字稿,再按发言人归好档。按照老办法,我得先装转写工具,再写 Python 脚本做音频切分,最后还得处理不同格式的时间戳,整套流程下来至少四五个小时。后来我换了思路,直接用 OpenClaw 这个开源智能体框架跑了一遍:告诉它“把这些录音转成文字,按发言人分目录存好”,剩下的它自己调度工具链完成了。
OpenClaw 说白了就是一套跑在命令行里的智能体工作流管理器,让你用自然语言指挥电脑完成多步骤任务。它把大模型、终端命令、文件系统、第三方 API 串成一个整体,很适合以下几类人:
- 想让 Mac 自动处理重复工作的同学,比如批量重命名、整理下载目录、生成周报;
- 想玩 AI Agent 但不想从零搭框架的开发者;
- 写了大量脚本但缺乏统一调度入口的运维和数据分析师;
- 以及单纯想看看 2026 年的个人 AI 助手到底能折腾到什么程度的好奇党。
这篇教程我会基于自己在 Mac 上的实际安装和使用经历,把环境准备、四条安装路线、首次初始化、模型接入,以及很多教程一笔带过的 skills 安装全部拆开讲。文中所有命令都在 macOS 14 和 macOS 15 上实测过,Apple Silicon 和 Intel 芯片的差异我也会单独标注。
1. 为什么我最终选了 OpenClaw,而不是自己写脚本
1.1 被重复劳动逼出来的需求
我接触 OpenClaw 之前,桌面上的自动化工作基本都是靠 shell 脚本 + cron 硬扛。比如每周五要汇总一周的 Git 提交记录、跑测试、生成报告,我写了快三百行 Python,里面塞满了 subprocess 调用的黑魔法。维护成本高不说,换个仓库就要改正则,非常痛苦。
后来我意识到,问题不在于“脚本写得不够好”,而在于“每个任务都需要手写一套工具链”。转写音频要调 A 工具,合并 PDF 要调 B 工具,处理图片要调 C 工具,这些工具之间没有统一的交互语言。OpenClaw 解决的核心问题就是把“任务理解—工具选择—参数填充—执行—结果整理”这个过程交给智能体,我只负责用一句话描述目标。
1.2 OpenClaw 在 2026 年的生态位
到 2026 年,Mac 上的智能体工具已经不少了,但 OpenClaw 的几个特点让它特别适合作为“个人电脑管家”:
- 原生终端优先:所有操作都围绕命令行展开,和 Git、Homebrew、Docker 这些开发者工具兼容得最好;
- 技能包(skills)机制成熟:社区贡献了大量现成的 skill,从 PDF 处理到飞书消息发送都有,安装一个技能就像给手机装一个 App;
- 本地优先:默认配置下数据都存本机,不强制上传云端;
- 模型无关:支持市面上主流厂商的 API,也支持跑在本机的开源模型,换模型不用改框架。
1.3 适用人群和场景清单
| 场景 | 以前的做法 | 用 OpenClaw 的做法 |
|---|---|---|
| 整理下载文件夹 | 手动拖拽 / 写 find+mv 脚本 | 一句话“把最近 7 天下载的图片按月份归档” |
| 批量处理 Markdown 文档 | 写 Pandoc 命令循环 | “把 docs 目录下所有 Markdown 转成 PDF” |
| 生成项目周报 | 手动翻 Git log 再复制粘贴 | “基于最近一周的提交记录生成周报 Markdown” |
| 会议录音转写 | 安装转写工具再手工切分 | “转写录音并按发言人整理” |
对我来说,最大的转变是:从“为每个任务写定制脚本”变成“让智能体动态组合通用工具”。日常运维、内容整理、文件处理这一类任务,OpenClaw 至少帮我省掉了七成重复劳动。
2. 安装前的 Mac 环境体检与三件套配置
在真正安装 OpenClaw 之前,我建议先把系统环境过一遍。很多安装失败其实不是 OpenClaw 本身的问题,而是基础依赖没就位。
2.1 系统版本和硬件要求
OpenClaw 官方文档写的是 macOS 13 及以上,但我实测下来,macOS 14 和 macOS 15 的体验最稳,尤其是 Apple Silicon 机器上,内存管理策略和日志权限逻辑都有差异。
硬件方面:
- Apple Silicon(M 系列芯片):推荐 16GB 内存起步。8GB 内存也能跑,但如果还要同时跑本地大模型,就非常吃紧;
- Intel Mac:可以安装,但涉及本地模型推理的场景会明显慢不少,建议把模型相关的 skill 都走远端 API;
- 磁盘空间:程序本体加依赖大约占用 400MB 到 600MB,日志和缓存默认存放在
~/.openclaw/下,如果想长期使用本地模型,至少预留 20GB 空间。
2.2 Homebrew:Mac 上的软件管家
Homebrew 几乎是 Mac 开发者绕不开的工具。如果你还没有安装,在终端执行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"国内网络环境下下载可能比较慢,安装前可以先把镜像源切换为国内高校或云厂商的 Homebrew 镜像,具体地址每个镜像站都有操作说明,照着改HOMEBREW_API_DOMAIN和HOMEBREW_BOTTLE_DOMAIN两个环境变量即可。装完验证:
brew --version2.3 Python 和 Node.js 版本管理
OpenClaw 有不少 skills 依赖 Python 3.11+ 或 Node.js 20+,特别是 Python 环境,最忌讳直接用系统自带的 Python。我个人的做法是用pyenv管理 Python 版本,用nvm管理 Node 版本:
brew install pyenv pyenv install 3.11.9 pyenv global 3.11.9 python --versionNode 这边:
brew install nvm mkdir -p ~/.nvm # 然后把 nvm 初始化脚本写入 ~/.zshrc 或 ~/.bash_profile nvm install 20 nvm use 20 node --version之所以强调版本管理,是因为 OpenClaw 的 skill 生态里有些脚本是 Python 2 时代的老古董格式,有些用了 Python 3.12 的新语法,如果没有独立的版本环境互相隔离,很容易出现“装 A skill 把 B skill 的依赖搞坏”的连锁反应。
2.4 终端与 SSH 配置
OpenClaw 的交互界面跑在终端里,默认的 macOS Terminal 就能用,但 zsh 的配置文件建议提前整理一下:
- 确认默认 shell 是 zsh:
echo $SHELL; - 如果之前配过
.zshrc,建议把LANG设置为zh_CN.UTF-8或en_US.UTF-8,避免中文文件名在日志里显示乱码; - 如果要用 Git 安装一些私有 skill 仓库,需要保证 SSH key 已经配置好并可以正常拉取仓库。
这一步做完,接下来正式安装 OpenClaw。
3. 四条安装路线怎么选:从一键脚本到源码编译
OpenClaw 的安装方式比早期丰富了很多,我按适用人群分成了四条路线。第一次接触的话,直接走路线 A;想自己改框架源码的,走路线 D。
3.1 路线 A:官方一键脚本(新手首选)
官方脚本是社区里最常用的安装方式,在终端执行:
curl -fsSL https://get.openclaw.dev/install.sh | bash脚本会自动检测系统架构(arm64 还是 x86_64),把可执行文件安装到/usr/local/bin或~/.local/bin,并写入对应的 shell 配置文件。装完开一个新终端,验证:
openclaw --version如果提示command not found,多半是~/.local/bin没有加入PATH,手动加一下即可。
3.2 路线 B:Homebrew 安装(偏好包管理的用户)
我自己的机器就是用 Homebrew 装的,因为平时所有工具都走 brew 管理,升级方便:
brew tap openclaw/tap brew install openclaw这种方式的好处是brew upgrade openclaw就能完成升级,不用重新跑脚本。
3.3 路线 C:Docker 容器(隔离派用户)
如果不想在宿主机装一堆依赖,可以用 Docker 跑:
docker run -d \ --name openclaw \ -v ~/.openclaw:/root/.openclaw \ -v ~/workspace:/workspace \ openclaw/openclaw:latest但注意:Docker 方案的文件系统隔离意味着容器里的 OpenClaw 直接访问宿主机文件会有额外配置成本,适合“只是试试看”的场景,真正常态使用还是建议直接安装在宿主机。
3.4 路线 D:源码编译(开发者模式)
想读源码、改代码、给社区提 PR 的朋友,用 Git 拉源码:
git clone https://github.com/openclaw/openclaw.git cd openclaw make bootstrap make install源码安装会拉取全部模块,耗时较长,而且依赖编译工具链(Xcode Command Line Tools),安装前先执行xcode-select --install把命令行工具补全。源码方式最大的优势是你可以直接改 skill 引擎的代码,做一些定制化逻辑。
3.5 安装后的目录结构
无论走哪条路线,OpenClaw 的数据目录默认都在~/.openclaw/下:
| 目录 | 用途 |
|---|---|
~/.openclaw/config.yaml | 主配置文件 |
~/.openclaw/skills/ | 技能包存放处 |
~/.openclaw/logs/ | 运行日志 |
~/.openclaw/cache/ | 模型缓存与临时文件 |
熟悉这个结构对后面排错很有帮助。
4. 第一次启动与模型接入:把 OpenClaw 变成能干活的助手
安装完成只是开始,真正让 OpenClaw 干活需要完成初始化和模型接入。我给朋友装的时候经常发现他们卡在这一步,主要原因是对“智能体怎么知道自己该调用哪个模型”没有概念。
4.1 初始化向导
第一次运行:
openclaw init初始化向导会问几个问题:
- 默认 shell 类型(建议选 zsh);
- 是否允许 OpenClaw 自动执行高风险命令(比如批量删除文件),新手建议选“每次询问”;
- 日志详细级别(日常使用 info 就够,排错时切 debug);
- 默认模型的接入方式。
初始化完成后会生成~/.openclaw/config.yaml,这是整个工具的“大脑配置”。
4.2 接入模型:兼容层是关键
OpenClaw 本身不内置大模型,它负责的是工具编排,真正理解任务靠的是外部模型 API。好消息是它对模型接入做了统一抽象,只要模型厂商提供 OpenAI 兼容的接口,就能直接填 Base URL 使用。
配置项大概是这样的:
model: provider: openai-compatible base_url: https://api.example.com/v1 api_key: sk-xxxxxxxxxxxxx model_name: gpt-4o-mini timeout: 120几个关键参数:
base_url:指向厂商兼容层地址。2026 年主流的模型服务商基本都支持 OpenAI 兼容协议,你从服务商的控制台拿到专属地址填进去就行;model_name:填服务商提供的模型标识,比如某个轻量模型或长上下文模型;timeout:推荐 120 秒以上。我一开始用默认 30 秒,处理一个多步骤任务经常中途报超时,后来调到 180 秒就稳定了;- 如果你想省钱或追求隐私,也可以在本地跑开源模型,像
llama或qwen系列,通过 Ollama 类的工具暴露本机 11434 端口给 OpenClaw 用。
4.3 验证是否跑通
配置完模型,可以先用一个简单任务验证:
openclaw run "统计当前目录下的 Python 文件数量,并按文件大小排序"如果配置正常,OpenClaw 会先拆解任务,决定调用哪些工具(比如find+sort),然后逐步执行并输出执行日志。看到类似下面的输出:
[Task] 统计当前目录下的 Python 文件数量,并按文件大小排序 [Plan] 1. 扫描目录获取 .py 文件列表 2. 获取大小并排序 3. 汇总结果 [Run] 完成,共找到 12 个文件就说明整个链路已经通了。这一步是很多人第一次感受到“电脑听懂了人话”的瞬间。
4.4 从命令模式进入交互模式
openclaw run "一句话任务"适合单次执行。如果需要连续对话式操作,比如“先列出所有待办事项,然后从中挑出和项目 A 有关的,排个优先级”,很多任务之间存在上下文关系,就需要进入交互模式:
openclaw交互模式会启动一个 REPL,在这里可以连续发指令,OpenClaw 会记住之前的对话状态。我个人日常用的都是交互模式,因为很多任务没法一句话说清楚,得靠多轮对话逐步修正。
4.5 给 OpenClaw 限定工作目录
默认情况下,OpenClaw 会以当前终端所在目录作为工作区,但我强烈建议在配置里设一个固定的工作目录:
workspace: root: ~/workspace这样你的所有文件操作都限制在~/workspace内,防止智能体跑偏了去动系统目录。
5. skills 安装实战:官方源、Git 与本地开发三条路
标题里特别提到了 skills 安装,这也是 OpenClaw 最值得玩的部分。简单说,skills 就是给 OpenClaw 装“专业技能”,让它可以完成默认能力之外的事情。
5.1 什么是 skill,它和插件有什么区别
我习惯把 skill 理解为“一个带使用说明的可执行工具包”。一个典型的 skill 包含:
manifest.yaml:声明文件,描述这个 skill 的名称、触发词、参数格式;- 一个或多个脚本:Python、Shell、Node.js 写的实际执行逻辑;
- 示例文件:演示这个 skill 的输入输出格式。
看起来和插件挺像,但区别在于 skill 更强调“被智能体动态调用”。普通插件往往是固定的功能模块,而 skill 有明确的“触发条件描述”,智能体会根据用户的一句话判断该调用哪个 skill。
5.2 安装前的准备
安装 skill 之前,先进入交互模式或确认网络没问题。有些 skill 安装时会自动拉取依赖,比如 Python 的某个库,所以建议提前把所有基础命令工具装好:
brew install jq yq wget unzipjq和yq这两个工具很多 skill 都要用到,用来处理 JSON 和 YAML 格式的数据。
5.3 第一条路线:官方源安装
官方源是社区维护的 skill 仓库,安装命令最简洁:
openclaw skill install pdf-merge这个命令会从官方源拉取pdf-mergeskill 并解压到~/.openclaw/skills/pdf-merge/。安装完成之后,立即查看已安装列表:
openclaw skill list输出会展示 skill 名、版本、状态。新装的 skill 如果支持热加载,直接在交互模式下就能用了;如果状态显示inactive,需要重启 OpenClaw 进程。
常见的几个官方 skill 我实际用下来觉得不错的包括:
pdf-merge:PDF 合并、拆分、加页眉页脚;excel-analyze:读取 Excel 文件做统计和图表生成;todo-sync:把任务清单同步到本地日历格式;image-ocr:用本机 OCR 引擎识别图片中的文字。
5.4 第二条路线:从 Git 仓库安装
社区里很多开发者会把 skill 放在自己的 Git 仓库里,安装方式和源码安装类似,支持 HTTPS 或 SSH 地址:
openclaw skill install https://github.com/example/skill-wechat-helper.git也可以从本地仓库安装:
openclaw skill install ./skill-wechat-helper从 Git 安装时有个细节:如果仓库里包含子模块,OpenClaw 不会自动拉子模块,需要你手动到~/.openclaw/skills/对应目录下执行git submodule update --init --recursive,否则 skill 运行时可能报缺文件。
5.5 第三条路线:本地手写一个 skill
这是我觉得最有意思的部分。拿一个实际需求举例:我想让 OpenClaw 读取一个目录下的 Markdown 文件,统计每篇的字数和标题层级,生成一个汇总表。
步骤一:创建 skill 目录结构
mkdir -p ~/.openclaw/skills/md-stats/{scripts,examples}步骤二:编写manifest.yaml
name: md-stats description: 统计指定目录下 Markdown 文件的字数与标题结构 version: 1.0.0 author: local keywords: - markdown - 字数 - 目录 scripts: main: scripts/main.py arguments: - name: folder required: true description: 要统计的 Markdown 文件夹路径 type: str步骤三:编写scripts/main.py
#!/usr/bin/env python3 import os import re import sys import json from pathlib import Path def count_md_stats(folder): folder_path = Path(folder) if not folder_path.is_dir(): return {"error": f"{folder} 不存在"} results = [] for md_file in sorted(folder_path.rglob("*.md")): with open(md_file, "r", encoding="utf-8") as f: content = f.read() title_match = re.search(r"^# (.+)$", content, re.MULTILINE) title = title_match.group(1) if title_match else md_file.name results.append({ "file": str(md_file), "title": title, "chars": len(content), "headings": len(re.findall(r"^#{1,6} ", content, re.MULTILINE)), }) return results if __name__ == "__main__": input_data = json.loads(sys.stdin.read()) output = count_md_stats(input_data.get("folder", ".")) print(json.dumps(output, ensure_ascii=False, indent=2))步骤四:安装并测试
openclaw skill install ~/.openclaw/skills/md-stats openclaw run "统计 /path/to/notes 目录下所有 Markdown 文档的字数"测试通过后,这个 skill 就常驻本地了。我建议所有经常做重复工作的朋友都尝试写一个自己的 skill,这个过程的收获远大于装现成的。
5.6 卸载、更新与依赖管理
卸载 skill:
openclaw skill uninstall md-stats更新某个从 Git 安装的 skill:
openclaw skill update md-stats更新所有 skill:
openclaw skill update --all如果你发现某个 skill 的运行结果非常不稳定,可以先卸载再重新安装,比手动清理目录要干净得多。
6. Mac 上我最想提醒的五个坑与排查记录
标题说“保姆级教程”,那踩坑经验肯定是少不了的。我在 Mac 上安装和使用 OpenClaw 时踩过不少坑,挑五个最值得说的分享出来。
6.1 中文文件名导致脚本输出乱码
现象:处理含中文文件名的目录时,日志里中文全部变成\x..形式,有些 skill 甚至直接报编码错误。
排查过程:我先用openclaw run "列出桌面上的文件名"发现输出正常,但切换到包含特殊字符(比如 emoji)的目录就出问题。查了日志发现 CLI 向 Python 子进程传参时默认用的是 UTF-8,但我的 zsh 环境变量里PYTHONIOENCODING没设置,导致 Python 的 stdin/stdout 编码不一致。
解决:在~/.zshrc里加
export LANG=zh_CN.UTF-8 export PYTHONIOENCODING=utf-8然后source ~/.zshrc重开终端,问题消失。这个坑在 macOS 14 之前很少见,但新系统对 locale 的识别更严格,值得提前设置好。
6.2 首次授权时权限弹窗“无响应”
现象:安装完 OpenClaw 之后,第一次运行需要访问“文件夹”权限,系统弹窗点了“允许”没反应。
排查:OpenClaw 的 CLI 进程是由终端(Terminal 或 iTerm2)启动的,macOS 的权限授权弹窗针对的是父进程(终端应用),所以需要在“系统设置—隐私与安全性—文件与文件夹”中找到终端 App,手动勾选“桌面文件夹”和“文稿”等目录。
解决:给终端 App 授权。注意授权范围越少越好,建议只勾选 OpenClaw 工作目录所在的文件夹,因为全盘访问权限一旦给出去,等于给了智能体无限文件操作权限,风险很大。
6.3 安装 skill 时 Git 拉取失败
现象:执行openclaw skill install时提示 Git error。
排查:先手动git ls-remote测试该仓库地址能不能访问,发现私仓的 SSH key 没加载。另外 GitHub 或 Gitee 的公开仓库偶尔也会因为网络波动失败。
解决:给 SSH 加配置,或改用 HTTPS 地址安装。如果是公司内网自建 Git,需要确认~/.gitconfig中的代理或者证书配置是否正确。这一步很多人容易漏,因为平时自己用 Git 可能没问题,但 OpenClaw 调用 Git 时不一定加载你 shell 里的全部环境变量,保险起见可以在配置里显式指定git_executable路径。
6.4 模型 API 超时导致多步任务中断
现象:复杂的多步骤任务(比如“读取这篇 PDF,提取关键信息,生成摘要,写成 Markdown 保存”)经常在第三步超时中断。
排查:打开~/.openclaw/logs/下的日志,发现超时发生在“生成摘要”环节,原因是一条指令里塞了太多内容,模型单次输出 token 超限。再检查配置,timeout只有 30 秒,明显不够。
解决:调大 timeout 到 180 秒,同时把复杂任务拆成两步。OpenClaw 本身支持在交互模式下分段引导,比如先“提取信息”,再“生成摘要”,每个子任务单独跑,稳定性大幅提升。
6.5 本地模型内存不足直接被杀
现象:在 Apple Silicon 8GB 内存的机器上跑本地模型,进程跑到一半系统提示内存不足,OpenClaw 崩溃。
排查:查htop发现内存占用在模型加载阶段就飙到 8GB 以上,系统开始杀进程。
解决:要么换小一点的量化模型,要么让 OpenClaw 的本地模型走远端独立服务。我用的是后一种方案:把模型跑在另一台 32GB 内存的 Linux 机器上,Mac 只做客户端调用。这样 Mac 内存占用长期稳定在 2GB 以内,干活也不卡。
最后再分享两个使用习惯
这篇教程到这儿,安装和 skills 的部分已经讲完了。最后我想分享两个在长期使用中摸索出来的小习惯。
第一个习惯是把常用命令封装成 shell 别名。我把 OpenClaw 的交互模式绑定成了oc:
alias oc="openclaw"然后在.zshrc里加了一条快速进入工作目录的指令,现在每天打开终端,敲oc就直接进入工作状态,少打六七个字符,效率提升虽然微小,但胜在每天的重复。
第二个习惯是定期翻日志。很多人用这类工具只看结果不看过程,我建议每周花十分钟翻一下~/.openclaw/logs/下的执行日志,重点关注那些“执行成功但和你预期不一致”的任务。比如你让它整理文件,它确实整理完了,但归类规则可能和你想的不一样。这种细微的偏差,正是掌握智能体调优的最好素材。
OpenClaw 这类工具的学习曲线其实不陡,真正需要花时间的不是安装,而是理解它的执行逻辑,以及慢慢积累适合自己的 skill 库。装好 первый 个 skill,跑通第一個 任务,后面就是水到渠成的事了。