开发者设置
设置
TL;DR
根据你希望更新的频率,以及是否想自己运行 Gateway 网关,选择一种设置工作流:
- 定制内容保存在仓库外: 将你的配置和工作区保存在
~/.openclaw/openclaw.json和~/.openclaw/workspace/,这样仓库更新不会影响它们。 - 稳定工作流(推荐大多数用户使用): 安装 macOS 应用,并让它运行内置 Gateway 网关。
- 前沿工作流(开发): 通过
pnpm gateway:watch自己运行 Gateway 网关,然后让 macOS 应用以 Local 模式连接。
前置条件(从源代码运行)
- 推荐 Node 24(Node 22 LTS,目前为
22.14+,仍受支持) - 源代码检出需要
pnpm。在开发模式下,OpenClaw 会从extensions/*pnpm 工作区包加载内置插件,因此根目录的npm install不会准备完整源代码树。 - Docker(可选;仅用于容器化设置/e2e - 参见 Docker)
定制策略(避免更新造成影响)
如果你想要“100% 按我定制”_并且_轻松更新,请将你的自定义内容保存在:
- 配置:
~/.openclaw/openclaw.json(JSON/类似 JSON5) - 工作区:
~/.openclaw/workspace(skills、prompts、memories;将其设为私有 git 仓库)
初始化一次:
openclaw setup
在此仓库内,使用本地 CLI 入口:
openclaw setup
如果你还没有全局安装,请通过 pnpm openclaw setup 运行。
从此仓库运行 Gateway 网关
执行 pnpm build 后,可以直接运行打包后的 CLI:
node openclaw.mjs gateway --port 18789 --verbose
稳定工作流(优先使用 macOS 应用)
- 安装并启动 OpenClaw.app(菜单栏)。
- 完成新手引导/权限检查清单(TCC 提示)。
- 确保 Gateway 网关为 Local 且正在运行(由应用管理)。
- 连接使用面(示例:WhatsApp):
openclaw channels login
- 完整性检查:
openclaw health
如果你的构建中没有新手引导:
- 运行
openclaw setup,然后运行openclaw channels login,再手动启动 Gateway 网关(openclaw gateway)。
前沿工作流(在终端中运行 Gateway 网关)
目标:开发 TypeScript Gateway 网关,获得热重载,并保持 macOS 应用 UI 连接。
0)(可选)也从源代码运行 macOS 应用
如果你也想使用前沿版本的 macOS 应用:
./scripts/restart-mac.sh
1) 启动开发版 Gateway 网关
pnpm install
# 仅首次运行(或重置本地 OpenClaw 配置/工作区后)
pnpm openclaw setup
pnpm gateway:watch
gateway:watch 会在具名 tmux 会话中启动或重启 Gateway 网关监听进程,并从交互式终端自动附加。非交互式 shell 会保持分离并打印 tmux attach -t openclaw-gateway-watch-main;使用 OPENCLAW_GATEWAY_WATCH_ATTACH=0 pnpm gateway:watch 可让交互式运行保持分离,或使用 pnpm gateway:watch:raw 进入前台监听模式。监听器会在相关源代码、配置和内置插件元数据变更时重新加载。如果被监听的 Gateway 网关在启动期间退出,gateway:watch 会运行一次 openclaw doctor --fix --non-interactive 并重试;设置 OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 可禁用这个仅限开发的修复步骤。
pnpm openclaw setup 是全新检出时一次性的本地配置/工作区初始化步骤。
pnpm gateway:watch 不会重新构建 dist/control-ui,因此在 ui/ 变更后请重新运行 pnpm ui:build,或在开发 Control UI 时使用 pnpm ui:dev。
2) 将 macOS 应用指向正在运行的 Gateway 网关
在 OpenClaw.app 中:
- Connection Mode:Local 应用会连接到已配置端口上正在运行的 gateway。
3) 验证
- 应用内 Gateway 网关状态应显示 “Using existing gateway …”
- 或通过 CLI:
openclaw health
常见坑点
- 端口错误: Gateway 网关 WS 默认是
ws://127.0.0.1:18789;确保应用和 CLI 使用同一端口。 - 状态保存位置:
- 频道/提供商状态:
~/.openclaw/credentials/ - 模型凭证配置文件:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - 会话:
~/.openclaw/agents/<agentId>/sessions/ - 日志:
/tmp/openclaw/
- 频道/提供商状态:
凭证存储映射
在调试认证或决定要备份什么时使用:
- WhatsApp:
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - Telegram bot token:配置/环境变量或
channels.telegram.tokenFile(仅普通文件;拒绝符号链接) - Discord bot token:配置/环境变量或 SecretRef(env/file/exec 提供商)
- Slack tokens:配置/环境变量(
channels.slack.*) - 配对允许列表:
~/.openclaw/credentials/<channel>-allowFrom.json(默认账户)~/.openclaw/credentials/<channel>-<accountId>-allowFrom.json(非默认账户)
- 模型凭证配置文件:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - 文件后端密钥载荷(可选):
~/.openclaw/secrets.json - 旧版 OAuth 导入:
~/.openclaw/credentials/oauth.json更多详情:Security。
更新(不破坏你的设置)
- 将
~/.openclaw/workspace和~/.openclaw/视为“你的内容”;不要把个人 prompts/配置放进openclaw仓库。 - 更新源代码:
git pull+pnpm install,然后继续使用pnpm gateway:watch。
Linux(systemd 用户服务)
Linux 安装使用 systemd 用户服务。默认情况下,systemd 会在退出登录/空闲时停止用户服务,这会终止 Gateway 网关。新手引导会尝试为你启用 linger(可能会提示输入 sudo)。如果仍未启用,请运行:
sudo loginctl enable-linger $USER
对于常驻或多用户服务器,请考虑使用系统服务而不是用户服务(无需 linger)。systemd 说明见 Gateway 网关运行手册。
相关文档
- Gateway 网关运行手册(flags、监管、端口)
- Gateway 网关配置(配置 schema + 示例)
- Discord 和 Telegram(reply tags + replyToMode 设置)
- OpenClaw assistant 设置
- macOS 应用(gateway 生命周期)