对于养虾来说,安装只是第一步,关键是后面怎么把它养成一个能帮你干活的助手,重点在“养”上面。
所以,为了玩好openclaw,我打算写一个系列的教程,教你从安装开始,到一步步把虾养好,直到成为你最得力的助手。
今天这篇文章先说清楚怎么在mac上安装,让你从环境准备、正式安装,到基础配置、飞书接入,都能一步一步跟着跑通。
如果你平时不怎么碰终端命令,跟着做,也没啥难度,看到代码也先别慌,都是复制、战帖、回车的事。
很多人装 OpenClaw 出问题,主要就是因为一些环境配置,我一开始也遇到过。为了后面可以更安全愉快的玩虾,我们先把一些前置依赖搞定。
1)建隔离账号。如果你没有闲置电脑,又想先装一个玩玩,可以先在mac上先建一个普通用户账号,然后在那里面装龙虾,做好安全隔离,玩着也放心。
找到左上角的苹果logo,点开系统设置。

找到“用户与群组”那,点“添加用户”。

创建一个普通新用户,用默认的就行。如果想省事,这个密码都可以不用填,反正先玩起来。

创建好了账号,我们就切换到这个新创建的用户下面来安装openclaw。这样的话,就能确保咱们日常用的账号数据是相对安全的。
要在mac上装上龙虾,还有2个东西要装,一个是Git,另一个是Node.js。
打开“终端”,在搜索里找到它。

2)先装下node.js。可以复制我下面写的命令来安装,在mac下用命令行操作非常方便。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh| bash

3)再安装git
brew install git

验证下装成功了没有。输入
node -v
git -v
如果能看到版本号,说明就已经装好了。

4)网络问题。这俩工具依赖装完后,通常还需要解决一个网络SSH的问题,不然会报错。可以再复制下面的命令来解决。
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/"

前面的准备做完,真正安装 OpenClaw 反而是最简单的一步。因为大多数情况下,一条命令就够了。
sudo npm i -g openclaw

然后让你输入你的用户密码,这里输入密码是不可见的,别输错了就行。
输入密码按回车,就开始自动下载安装了。大概只需要1分钟左右,就可以安装好了。

看到这样的提示,就代表已经安装好了。
安装好了之后,开始进行配置。
在过程中,如果你发现选错了,想重新来过,可以按Esc,然后重新输入openclaw onboard开始配置。
复制这个命令
openclaw onboard
第1个按方向键左,选Yes。

第2个直接回车确认,快速开始配置。

第3个配置模型,比如我是冲了GPT的plus会员,那我就直接选openAI。如果你是买了其他模型,那就选其他的。

第4个,充了plus会员的就直接选第一个,这样就可以共享会员的钱,不用额外再买API了,很划算。如果选第2个,就需要另外买API的钱,用多少就得冲多少钱。具体怎么冲上会员,可以看我上一篇文章如何在国内成功充值chatgpt/claude?最新最简单实操教程,亲测可用。

选完后,它会直接跳转到chatGPT的网页让你登录授权,你直接登录就完事。(这里需要能上外网,不然打不开网页,自然也就会登录失败)
看到这个就说明授权成功了,然后回到终端继续配置。如果发现提示说失败了,多半是网络原因,多试几次,会成功的。

第5个,接着让你选用哪个版本的模型,直接选最新的。这个地方我一开始也每太明白,前面不是选了模型吗?为啥还要选,可以理解为你已经是会员了,但具体用哪个版本,你还能再确认一次。

第6个,让你选要用哪个聊天工具配置,先跳过,后面我们再配。
第7个,让你选要装哪些技能,选no,先跳过,后面再说。

8、这里要按空格才能选中,继续跳过。

10、可以选择第二个,在网页上聊天。

11、到这里就装好了你的小龙虾,它会自动弹出一个网页。

12、跟你的龙虾发第一条信息。

如果你只是想在网页上和它聊天,到前面其实已经配置好了。
接着我还想在飞书上指挥它干活,所以后面我还把飞书给街上了。跟着做,别着急,就差几步了。
openclaw configure
选择Local

选择channels,意思是选择聊天工具。


选择飞书。

第一次选择,因为还没有飞书文件夹,它会自动给你下载,默认回车即可。
接着就会让你输入App Secret

这个怎么获得呢?继续跟我操作。
https://open.feishu.cn/app
先点“创建企业自检”

把信息填好,点创建。

在左边找到“添加应用能力”,点添加机器人能力。

接着在权限管理那,点“批量导入/导出权限”

然后把下面的所有代码全选,贴到JSON框里,就能把所有需求的权限自动勾选上了,很效率。
{"scopes": {"tenant": ["base:app:copy","base:app:create","base:app:read","base:app:update","base:collaborator:create","base:collaborator:delete","base:collaborator:read","base:dashboard:copy","base:dashboard:read","base:field:create","base:field:delete","base:field:read","base:field:update","base:form:read","base:form:update","base:record:create","base:record:delete","base:record:read","base:record:retrieve","base:record:update","base:role:create","base:role:delete","base:role:read","base:role:update","base:table:create","base:table:delete","base:table:read","base:table:update","base:view:read","base:view:write_only","bitable:app","bitable:app:readonly","board:whiteboard:node:create","board:whiteboard:node:delete","board:whiteboard:node:read","board:whiteboard:node:update","contact:contact.base:readonly","contact:user.base:readonly","contact:user.employee_id:readonly","contact:user.employee_number:read","contact:user.id:readonly","docs:doc","docs:doc:readonly","docs:document.comment:create","docs:document.comment:read","docs:document.comment:update","docs:document.comment:write_only","docs:document.content:read","docs:document.media:download","docs:document.media:upload","docs:document.subscription","docs:document.subscription:read","docs:document:copy","docs:document:export","docs:document:import","docs:event.document_deleted:read","docs:event.document_edited:read","docs:event.document_opened:read","docs:event:subscribe","docs:permission.member","docs:permission.member:auth","docs:permission.member:create","docs:permission.member:delete","docs:permission.member:readonly","docs:permission.member:retrieve","docs:permission.member:transfer","docs:permission.member:update","docs:permission.setting","docs:permission.setting:read","docs:permission.setting:readonly","docs:permission.setting:write_only","docx:document","docx:document.block:convert","docx:document:create","docx:document:readonly","drive:drive","drive:drive.metadata:readonly","drive:drive.search:readonly","drive:drive:readonly","drive:drive:version","drive:drive:version:readonly","drive:export:readonly","drive:file","drive:file.like:readonly","drive:file.meta.sec_label.read_only","drive:file:download","drive:file:readonly","drive:file:upload","drive:file:view_record:readonly","event:ip_list","im:app_feed_card:write","im:biz_entity_tag_relation:read","im:biz_entity_tag_relation:write","im:chat","im:chat.access_event.bot_p2p_chat:read","im:chat.announcement:read","im:chat.announcement:write_only","im:chat.chat_pins:read","im:chat.chat_pins:write_only","im:chat.collab_plugins:read","im:chat.collab_plugins:write_only","im:chat.managers:write_only","im:chat.members:bot_access","im:chat.members:read","im:chat.members:write_only","im:chat.menu_tree:read","im:chat.menu_tree:write_only","im:chat.moderation:read","im:chat.tabs:read","im:chat.tabs:write_only","im:chat.top_notice:write_only","im:chat.widgets:read","im:chat.widgets:write_only","im:chat:create","im:chat:delete","im:chat:moderation:write_only","im:chat:operate_as_owner","im:chat:read","im:chat:readonly","im:chat:update","im:datasync.feed_card.time_sensitive:write","im:message","im:message.group_at_msg:readonly","im:message.group_msg","im:message.p2p_msg:readonly","im:message.pins:read","im:message.pins:write_only","im:message.reactions:read","im:message.reactions:write_only","im:message.urgent","im:message.urgent.status:write","im:message.urgent:phone","im:message.urgent:sms","im:message:readonly","im:message:recall","im:message:send_as_bot","im:message:send_multi_depts","im:message:send_multi_users","im:message:send_sys_msg","im:message:update","im:resource","im:tag:read","im:tag:write","im:url_preview.update","im:user_agent:read","sheets:spreadsheet","sheets:spreadsheet.meta:read","sheets:spreadsheet.meta:write_only","sheets:spreadsheet:create","sheets:spreadsheet:read","sheets:spreadsheet:readonly","sheets:spreadsheet:write_only","space:document.event:read","space:document:delete","space:document:move","space:document:retrieve","space:document:shortcut","space:folder:create","wiki:member:create","wiki:member:retrieve","wiki:member:update","wiki:node:copy","wiki:node:create","wiki:node:move","wiki:node:read","wiki:node:retrieve","wiki:node:update","wiki:setting:read","wiki:setting:write_only","wiki:space:read","wiki:space:retrieve","wiki:space:write_only","wiki:wiki","wiki:wiki:readonly"]}}

后续需要的一些能力,就都一键选上了。

搞完这一步后,我们就可以在页面顶部找到创建版本。

按我截图上的内容填写,完了之后把页面翻到底部,点保存,就发布出去了。

接着,我们点开“凭证与基础信息”,能看到App ID和App Secret。

把它们复制下来,回到终端里填进去,注意别贴反了。

然后 Feishu connection mode,选择默认的webSocket

下一个选项选中国

继续选第二个

选最后一个完成

选no

选Continue

终端这边基本上就搞完了

然后再回到飞书开发者平台这边。
在左边找到事件与回调——事件配置——订阅方式,点下那个图标进行配置

选择订阅方式为长链接,点保存。

接着点右边的“添加事件”

选择左边的消息和群组,把所有能力全添加上,点确认添加,完事。

接着继续创建一个新版本,发布。

发布完了之后,我们打开飞书APP。
在飞书消息里找到开发者小助手,点开它。

然后在消息里,点打开应用。

给它发一条信息,会得到一条授权码。

复制最后一行代码,在终端发给它。参考我下面那段代码,你只需要把后面的XXXXX替换为你刚才拿到的授权码。
openclaw pairing approve feishu XXXXXXX
OK,到这里就配置的差不多了,现在可以给它发一条信息试试看。

恭喜你,到这里就全部配置完成了。
过程中,可能还需要一些基础的常用命令,我把它放在这里,方便大家使用。
查看整体运行状态:
openclaw status
第一次跑起来:
openclaw gateway --port 18789
想彻底停掉服务时:
openclaw gateway stop
改完配置、改完模型、改完通道后,常常需要重启:
openclaw gateway restart
更新 OpenClaw 到最新版:
openclaw update
无缘无故没反应了,查日志,有日志方便丢给AI帮你定位和解决:
openclaw logs --follow
不知道哪里错了,先跑它做检查:
openclaw doctor
想看跟飞书或其他聊天工具是否连正常:
openclaw channels status --probe
到这里,这篇 OpenClaw 的安装和基础配置,基本就讲完了。
总的来说,如果你有一定的开发经验,这个安装过程完全没任何难度。对于没有终端命令操作经验的朋友,可能第一次配置的时候会稍微麻烦一些,但其实跟着教程做,应该也还好。如果有发现什么其他问题,直接把错误情况全部复制下来丢给AI,也能给你解决方案,有AI这个好老师在,啥都能搞定。
我在公司自己装一个,最快3分钟左右就能搞定一个安装,所以你肯定也没问题,加油吧。养虾之旅就快开始了。
既然来了,说些什么?