前言
对于程序员和 IT 工程师而言,生产资料都在主力机上,建议直接在主力机器上使用 OpenClaw,以求效率最大化。前提是我们能够完全控制它。这篇文章讲的就是如何在主力机上安全地使用 OpenClaw。

本文介绍了在 macOS 主力机上安全部署 OpenClaw 的步骤。内容包括前置环境准备(Homebrew、Node.js、Bun),常规安装流程,大模型接入配置(支持本地 Ollama 或云端 API),以及远程通信信道设置(如飞书)。此外还涵盖了 Skills 插件管理、系统 Hooks 配置、守护进程启动、跨设备扩展、身份鉴权及 WebUI/TUI 使用方式。文末提供了 Docker Compose 容器化部署方案及官方资源链接。
对于程序员和 IT 工程师而言,生产资料都在主力机上,建议直接在主力机器上使用 OpenClaw,以求效率最大化。前提是我们能够完全控制它。这篇文章讲的就是如何在主力机上安全地使用 OpenClaw。

OpenClaw 支持常规安装到设备上,也支持 Docker Compose 容器化安装。如果你的环境是 Linux,那么建议容器安装以获得最好的安全性。如果你的环境是 MacOS,那么建议常规安装到宿主机上,能够使用尽可能多的 MacOS Skills。
本章节先介绍常规安装方式。
NOTE:建议使用 macOS,因为很多 Skills 都是围绕 macOS 展开的,另外建议使用最新的 macOS 操作系统版本,否则有很多 Skills&Tools 安装不了。 NOTE:如果你是要云服务器,服务器内存至少买 4G 以上,推荐直接上 8G 或 16G。运行内存太小会直接卡死。跑浏览器需要至少 4G 内存才能正常运行。
更新 brew 版本:
# 临时配置 Homebrew 国内镜像(仅当前终端会话有效)
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-cask.git"
# 重置并强制更新 Homebrew
brew update-reset && brew update
安装 Node.js 22+:它是基于 Chrome V8 引擎的 JavaScript 运行环境,让 JS 程序可在服务器端执行。
$ brew install node@22
$ node --version
使用国内 npm(Node Package Manager)源:npm 是随 Node.js 一起安装的包管理工具,用于依赖安装与管理。而 npx 是 npm 5.2+ 自带的包执行工具,用于执行无需永久安装的 CLI 工具,避免全局污染。
$ npm config set registry https://registry.npmmirror.com
$ npm config get registry
后续安装特定的 skill 的时候,可能会使用 bun 或者 go。
安装 Bun(可选的):Bun 是一个现代、极其快速的 JavaScript/TypeScript 一站式工具箱。它的设计目标是取代传统的 Node.js 及其周边的庞杂生态(如 npm、Webpack、Babel、Jest 等),通过将运行时、包管理器、打包器和测试器整合进一个单一的可执行文件中,极大地提升开发效率。
$ curl -fsSL https://bun.com/install | bash
$ bun --version
# Output: 1.x.y
安装 go(可选的)。
一键安装:
$ curl -fsSL https://openclaw.ai/install.sh | bash
(可选的)重新进入安装流程:
$ openclaw onboard --install-daemon
首先是风险提示,了解选 yes。

然后是选大模型厂商,这里选用国内的 Zhipu。有钱可以选择 Claude Opus 4.6 或 GPT-5.3 Codex。

只需要填写 API key 和选择模型型号。

另外,初始化时选择'Ollama'提供商,即可实现'本地大模型无 API Key、零延迟响应、全本地闭环',处理极度敏感数据时无需担心泄露风险。
选择和 Claw 进行远程控制的 Channel,选择国内的飞书。

但是安装失败了,后来了解到官方的飞书插件刚上线不久,还有一些坑。所以后面会考虑使用第三方的稳定插件。

开始选择需要安装的 Skills。
推荐安装以下 Skills,但有些对 MacOS 版本有要求,按需选择。

Skills 的安装过程中有些因为个重要原因没成功,这些都不着急,后面再解决。
下面是一些 Skills 需要的配置,没有安装对应 Skills 的话直接 NO 即可。

这些 Hooks(钩子)是 OpenClaw Gateway 在特定运行阶段会触发的钩子功能,用来定制、监控、增强 OpenClaw 的基础行为。
建议全部安装。

OpenClaw Gateway 是唯一中央控制平面守护进程,非常重要。

Optional apps 是 OpenClaw 提供的跨设备功能扩展选项,所谓的 nodes(节点)其实是 OpenClaw 的跨设备功能模块,包括 macOS、iOS、Android 这三种类型。每个 app node 对应一个设备,添加 nodes 后能让 OpenClaw 和这些设备进行联动操作,解锁额外的跨设备功能。
macOS 模块侧重系统集成和通知,iOS/Androi 则侧重相机和画布调用:
建议都安装,给与 OpenClaw 合适的操作权限,使其成为全能助手。

macOS 开启后,会接受到系统的安全提示通知 Background Items Added,名为 node 的程序被添加为了'后台运行项'。macOS 出于安全考虑,会对所有新增的后台运行程序弹出这个提示,避免未经授权的程序偷偷后台运行。我们可以在'登录项设置'里管理它的后台运行权限。

如果想确认或调整权限,按以下步骤操作:
推荐开启:保留 node 的后台运行权限,这样 OpenClaw 的自动化功能(比如定时监控博客、自动推送通知)才能正常工作;


Token(令牌)是外部访问 OpenClaw Gateway API 和 Web UI 的身份凭证。持有 Token 后才能访问我的 OpenClaw,防止别人未授权使用。
保存 Token 的位置有 2 个:
查看 Token 的指令:
$ openclaw config get gateway.auth.token
重新生成 Token 的指令:
$ openclaw doctor --generate-gateway-token

启动 Web UI:
$ openclaw dashboard
第一次登陆 WebUI 会需要输入 Token,也可以直接粘贴带有 Token 的 WebUI URL。第一次登录后,浏览器会把令牌副本存在 localStorage,Key 为 openclaw.control.settings.v1,下次打开 Web UI 不用重复输入 Token 了。

TUI(Terminal User Interface)是类似 Claude Code、Gemini CLI 风格的操作界面,更适合程序员。

重新进入 TUI 界面:
$ openclaw tui
值得注意的是,TUI 目前只会直接给出结果而没有过程,但你可以在 WebUI 中看见执行过程。例如:
WebUI 有过程和结果

TUI 只有结果

选择使用 TUI 之后就开始输入第一个 Prompt 了'Wake up, my friend!',有回复后就进入了 OpenClaw 机器人的'调教'阶段。这个是机器人 Cosplay 的核心配置环节,非常重要,不要着急,提供给机器人的信息越多,那么你以后得到的体验就越好。

上述对机器人的配置会被保存在下列文件中,后续也可以继续修改:
~/.openclaw/workspace/USER.md # 主人角色定义
~/.openclaw/workspace/IDENTITY.md # 机器人角色定义
~/.openclaw/workspace/SOUL.md # 机器人灵魂定义
安装成功后的进程和端口如下,核心的守护进程是 openclaw-gateway,默认端口为 TCP 18789。
进程:
$ ps -ef | grep openclaw
50171488101:17PM ?? 0:18.09 openclaw-gateway
5015753650334012:33PM ttys000 0:00.35 openclaw
5015778657536012:33PM ttys000 0:22.74 openclaw-onboard
端口:
$ lsof -i -P | grep -i node | grep -v grep
COMMAND PID FD TYPE DEVICE SIZE/OFF NODE NAME
node 57786 11u IPv4 0x8d34e56895853e31 0t0 TCP localhost:53041->localhost:18789 (ESTABLISHED)
node 71488 15u IPv4 0x8d34e5689612d451 0t0 TCP localhost:18789 (LISTEN)
node 71488 16u IPv6 0x8d34e55efeb3ee29 0t0 TCP localhost:18789 (LISTEN)
node 71488 18u IPv4 0x8d34e56896e4d6b1 0t0 TCP localhost:18792 (LISTEN)
node 71488 19u IPv4 0x8d34e56d640946e9 UDP *:5353
node 71488 21u IPv4 0x8d34e56d64b5bae9 UDP *:5353
node 71488 22u IPv4 0x8d34e56895c2be31 0t0 TCP localhost:18789->localhost:53041 (ESTABLISHED)
node 71488 29u IPv4 0x8d34e56896497321 0t0 TCP localhost:18789->localhost:61026 (ESTABLISHED)
node 71488 31u IPv4 0x8d34e56896d9f581 0t0 TCP localhost:18789->localhost:61003 (ESTABLISHED)
node 71488 33u IPv4 0x8d34e56895cedf61 0t0 TCP localhost:18789->localhost:63268 (ESTABLISHED)
在 Linux 生产环境中推荐使用 Docker Compose,因为 MacOS Skills 肯定用不了了,容器化能带来更好的安全隔离。
克隆仓库:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
git checkout v2026.2.9
git switch -c v2026.2.9
查看原始 docker-compose.yml:
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-openclaw:local}
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
- "${OPENCLAW_BRIDGE_PORT:-18790}:18790"
init: true
restart: unless-stopped
command: ["node", "dist/index.js", "gateway", "--bind", "${OPENCLAW_GATEWAY_BIND:-lan}", "--port", "18789"]
openclaw-cli:
image: ${OPENCLAW_IMAGE:-openclaw:local}
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
BROWSER: echo
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
stdin_open: true
tty: true
init: true
entrypoint: ["node", "dist/index.js"]
手动部署:
# 1. 构建镜像
docker build -t openclaw:local -f Dockerfile .
# 2. 运行配置向导
docker compose run --rm openclaw-cli onboard
# 3. 启动 Gateway
docker compose up -d openclaw-gateway
# 4. 获取控制面板链接
docker compose run --rm openclaw-cli dashboard --no-open
# 5. 查看并授权设备
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>
(可选的)也可以一键自动完成部署:
# 额外挂载目录
export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro"
# 持久化 home 目录
export OPENCLAW_HOME_VOLUME="openclaw_home"
# 一键部署
./docker-setup.sh
脚本 docker-setup.sh 会自动完成:
Gateway 将运行在 http://127.0.0.1:18789/
登录飞书开放平台:https://open.feishu.cn/ 创建自建应用,命名为 OpenClaw。

给应用添加一个机器人,这个机器人在飞书上可以和他聊天,这个机器人后面要对接到真正的 OpenClaw。

为应用 OpenClaw 开通所有 IM(即时通信)权限,首先要创建机器人。例如:
等等

在 OpenClaw 上安装 feishu Channels 插件。使用比较稳定的第三方插件:https://github.com/m1heng/Clawdbot-feishu
openclaw plugins install @m1heng-clawd/feishu
配置 feishu 插件使用刚刚创建的 OpenClaw 应用,填写 AppID 和 AppSecret。这样 OpenClaw 就可以和飞书建立 Channel 了。
openclaw config set channels.feishu.appId "cli_xxxxx"
openclaw config set channels.feishu.appSecret "your_app_secret"
openclaw config set channels.feishu.enabled true

配置飞书消息事件回调,使得 OpenClaw 应用可以接收到 OpenClaw 机器人发过来的消息,然后再转发给飞书聊条框。 注意使用长连接接收事件,这样 OpenClaw 可以随时通知你。

添加一个接收到消息就触发回调的事件。


为 OpenClaw 应用开启获取通讯录基本信息的权限。

配置好后发布 OpenClaw 应用的版本。

重启 OpenClaw Gateway 可以看见飞书开放平台上的 OpenClaw 应用作为 WebSocket Client 已经 Ready 了。

使用飞书开始和 OpenClaw 聊天。

每次通信都会有日志记录。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online