Windows 节点
- 原始链接:https://github.com/openclaw/openclaw-windows-node
- 来源章节:7. 官方仓库与生态仓库
- 来源小节:无
- 抓取方式:jina:https://r.jina.ai/http://github.com/openclaw/openclaw-windows-node
- 抓取时间:2026-04-05 13:47:10
- 状态:ok
中文内容
OpenClaw 的 Windows 配套套件 - 人工智能驱动的个人助理。
由 Scott Hanselman 和 Molty 倾注🦞之爱而制作
项目
| 项目 | 描述 |
|---|---|
| OpenClaw.Tray.WinUI | 用于快速访问 OpenClaw 的系统托盘应用程序 (WinUI 3) |
| OpenClaw.Shared | 共享网关客户端库 |
| OpenClaw.Cli | 使用托盘设置进行 WebSocket 连接/发送/探测的 CLI 验证器 |
| OpenClaw.CommandPalette | PowerToys 命令面板扩展 |
🚀 快速入门
最终用户安装程序? 请参阅 docs/SETUP.md 了解分步安装指南(无需构建)。
先决条件
- Windows 10 (20H2+) 或 Windows 11
- .NET 10.0 SDK - https://dotnet.microsoft.com/download/dotnet/10.0
- Windows 10 SDK(用于 WinUI 构建)- 通过 Visual Studio 或独立安装
- WebView2 运行时 - 预安装在现代 Windows 上,或从 https://developer.microsoft.com/microsoft-edge/webview2 获取
- PowerToys(可选,用于命令面板扩展) - 请参阅 docs/POWERTOYS.md
构建
检查先决条件
.\build.ps1 -仅检查
构建所有项目
.\build.ps1
构建具体项目
.\build.ps1 - 项目 WinUI
或者直接使用 dotnet 构建:
构建全部(使用 build.ps1 以获得最佳结果)
点网构建
构建 WinUI(需要运行时标识符以支持 WebView2)
dotnet build src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj -r win-arm64 # ARM64 dotnet build src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj -r win-x64 # x64
构建 MSIX 包(用于摄像头/麦克风同意提示)
dotnet build src/OpenClaw.Tray.WinUI -r win-arm64 -p:PackageMsix=true # ARM64 MSIX dotnet build src/OpenClaw.Tray.WinUI -r win-x64 -p:PackageMsix=true # x64 MSIX
运行托盘应用程序
直接运行exe(路径包含运行时标识符)
.\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.19041.0\win-arm64\OpenClaw.Tray.WinUI.exe # ARM64 .\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.19041.0\win-x64\OpenClaw.Tray.WinUI.exe # x64
运行 CLI WebSocket 验证器
使用 CLI 在托盘 UI 外部验证网关连接和“chat.send”。
显示帮助
dotnet run --project src/OpenClaw.Cli -- --help
使用 %APPDATA%\OpenClawTray\settings.json 中的托盘设置并发送一条消息
dotnet run --project src/OpenClaw.Cli -- --message“快速发送验证”
循环发送并探测会话/使用情况/节点 API
dotnet run --project src/OpenClaw.Cli -- --repeat 5 --delay-ms 1000 --probe-read --verbose
覆盖网关 URL/令牌以进行隔离测试
dotnet run --project src/OpenClaw.Cli -- --url ws://127.0.0.1:18789 --token "" --message "覆盖测试"
📦 OpenClaw.Tray(莫蒂)
现代 Windows 11 风格的系统托盘伴侣,可连接到本地 OpenClaw 网关。
### 特征
- 🦞 龙虾品牌 - 带有状态颜色的像素艺术龙虾托盘图标
- 🎨 现代 UI - 支持暗/亮模式的 Windows 11 弹出菜单
- 💬 快速发送 - 通过全局热键(Ctrl+Alt+Shift+C)发送消息
- 🔄 自动更新 - 来自 GitHub 版本的自动更新
- 🌐 Web Chat - 带 WebView2 的嵌入式聊天窗口
- 📊 实时状态 - 实时会话、频道和使用情况显示
- ⚡ 活动流 - 用于实时会话、使用情况、节点和通知事件的专用弹出窗口
- 🔔 Toast 通知 - 可点击的 Windows 通知,具有 智能分类
- 📡 频道控制 - 从菜单启动/停止 Telegram 和 WhatsApp
- 🖥️ 节点可观测性 - 具有在线/离线状态和可复制摘要的节点库存
- ⏱ Cron Jobs - 快速访问计划任务
- 🚀 自动启动 - 使用 Windows 启动
- ⚙️ 设置 - 完整配置对话框
- 🎯 首次运行体验 - 欢迎对话框引导新用户
快速发送范围要求
快速发送使用网关“chat.send”方法,并要求操作员设备具有“operator.write”范围。
如果快速发送因“缺少范围:operator.write”而失败,Molty 现在会将身份 + 补救指南复制到剪贴板,包括:
- 托盘应用程序使用的操作员角色和“client.id”
- 网关报告的运营商设备 ID(如果提供)
- 当前授予的范围(如果提供)
对于此特定错误(“缺少范围:operator.write”),原因是操作符令牌范围问题。更新托盘应用程序使用的令牌,使其包含“operator.write”,然后重试“快速发送”。
如果快速发送因“需要配对”/“未配对”而失败,则这是一个 设备批准 问题。在网关配对批准中批准托盘设备,重新连接并重试。
菜单部分
- 状态 - 网关连接状态,点击查看详细信息
- 会话 - 具有预览和每会话控制的活动代理会话
- 使用 - 提供商/成本摘要,可快速跳转至活动详细信息
- 频道 - 带切换控制的 Telegram/WhatsApp 状态
- 节点 - 在线/离线节点清单和可复制的摘要
- 最近活动 - 会话、使用情况、节点和通知的时间戳事件流
- 操作 - 仪表板、网络聊天、快速发送、活动流、历史记录
- 设置 - 配置、自动启动、日志
Mac 奇偶校验状态
与 openclaw-menubar(macOS Swift 菜单栏应用程序)比较:
| 特色 | 苹果电脑 | 窗户 | 笔记 |
|---|---|---|---|
| 菜单栏/托盘图标 | ✅ | ✅ | 颜色编码状态 |
| 网关状态显示 | ✅ | ✅ | 已连接/已断开 |
| PID显示 | ✅ | ❌ | Mac 显示网关 PID |
| 频道状态 | ✅ | ✅ | Mac:Discord / 获胜:Telegram+WhatsApp |
| 会话数 | ✅ | ✅ | |
| 上次检查时间戳 | ✅ | ✅ | 显示在托盘工具提示中 |
| 网关启动/停止/重启 | ✅ | ❌ | Mac控制网关进程 |
| 查看日志 | ✅ | ✅ | |
| 打开网页用户界面 | ✅ | ✅ | |
| 刷新 | ✅ | ✅ | 菜单打开时自动刷新 |
| 登录后启动 | ✅ | ✅ | |
| 通知切换 | ✅ | ✅ |
仅限 Windows 的功能
这些功能在 Windows 中可用,但在 Mac 应用程序中不可用:
| 特色 | 描述 |
|---|---|
| 快速发送热键 | Ctrl+Alt+Shift+C 全局热键 |
| 嵌入式网络聊天 | 基于WebView2的聊天窗口 |
| 吐司通知 | 可点击的 Windows 通知 |
| 渠道控制 | 启动/停止 Telegram 和 WhatsApp |
| 现代弹出菜单 | Windows 11 风格的深色/浅色模式 |
| 深层链接 | openclaw:// 带 IPC 的 URL 方案 |
| 欢迎首轮 | 新用户入职指导 |
| PowerToys 集成 | 命令面板扩展 |
🔌节点模式(代理控制)
当在“设置”中启用节点模式时,您的 Windows PC 将成为 OpenClaw 代理可以控制的 节点 - 就像 Mac 应用程序一样!代理人可以:
| 能力 | 命令 | 描述 |
|---|---|---|
| 系统 | system.notify、system.run、system.run.prepare、system.which、system.execApprovals.get、system.execApprovals.set | 显示 Windows toast 通知,使用策略控制执行命令 |
| 画布 | canvas.present、canvas.hide、canvas.navigate、canvas.eval、canvas.snapshot、canvas.a2ui.push、canvas.a2ui.reset | 显示和控制WebView2窗口 |
| 屏幕 | screen.capture、screen.list | 捕获屏幕截图 |
| 相机 | camera.list, camera.snap | 枚举相机并拍摄静态照片 |
节点设置
-
在设置中启用节点模式(默认启用)
-
首次连接 在网关上创建配对请求
-
在网关上批准设备:
openclaw 设备列表 # 查找您的 Windows 设备
openclaw 设备批准 # 批准
4. 配置网关allowCommands - 在~/.openclaw/openclaw.json中的gateway.nodes下添加您想要允许的命令:
{ “网关”:{ “节点”:{ “允许命令”:[ “系统.通知”, “系统.运行”, “系统.运行.准备”, “系统.which”, “system.execApprovals.get”, “system.execApprovals.set”, “画布.礼物”, “画布.隐藏”, “画布.导航”, “画布.评估”, “画布.快照”, “canvas.a2ui.push”, “画布.a2ui.重置”, “屏幕截图”, "屏幕.列表", “相机列表”, “相机.快照” ] } } }
⚠️重要:网关有一个服务器端白名单。必须明确列出命令 - 像“canvas.*”这样的通配符不起作用!
- 从您的 Mac/网关进行测试:
显示通知
openclaw 节点通知 --node --title "Hello" --body "来自 Mac!"
打开画布窗口
openclaw 节点画布存在 --node --url "https://example.com"
执行 JavaScript(注意:CLI 发送“javaScript”参数)
openclaw 节点 canvas eval --node --javaScript "document.title"
在画布中渲染 A2UI JSONL(将文件内容作为字符串传递)
openclaw 节点 canvas a2ui Push --node --jsonl "$(Get-Content -Raw .\ui.jsonl)"
截图
openclaw 节点调用 --node --command screen.capture --params '{"screenIndex":0,"format":"png"}'
列出相机
openclaw 节点调用 --node --command camera.list
拍照(NV12/MediaCapture 后备)
openclaw 节点调用 --node --command camera.snap --params '{"deviceId":"","format":"jpeg","quality":80}'
在Windows节点上执行命令
openclaw 节点调用 --node --command system.run --params '{"command":"Get-Process | Select -First 5","shell":"powershell","timeoutMs":10000}'
查看exec批准策略
openclaw 节点调用 --node --command system.execApprovals.get
更新执行审批策略(添加自定义规则)
openclaw 节点调用 --node --command system.execApprovals.set --params '{"rules":[{"pattern":"echo ","action":"allow"},{"pattern":"","action":"deny"}],"defaultAction":"deny"}'
📷 相机权限:桌面构建依赖于 Windows 隐私设置。打包的 MSIX 版本将显示系统同意提示。
🔒 执行策略:
system.run由位于%LOCALAPPDATA%\OpenClawTray\exec-policy.json的 Windows 节点上的审批策略控制(架构:{ "defaultAction": "...", "rules": [...] })。这与网关端~/.openclaw/exec-approvals.json是分开的。规则与
command标记 (argv[0]) 进行匹配。如果您的调用运行“powershell.exe -File script.ps1”,请允许“powershell.exe”/“pwsh.exe”(不仅仅是脚本路径),否则您将得到“没有匹配的规则;应用默认策略`。openclaw 节点调用 --node --command system.execApprovals.set --params '{"rules":[{"pattern":"powershell.exe","action":"allow"},{"pattern":"pwsh.exe","action":"allow"},{"pattern":"echo ","action":"允许"},{"pattern":"","action":"拒绝"}],"defaultAction":"拒绝"}'
🔐 网络聊天安全上下文:远程网络聊天需要
https://(或 localhost)。如果使用自签名证书,请在 Windows(受信任的根证书颁发机构)中信任它,或使用到本地主机的 SSH 隧道。
托盘菜单中的节点状态
- 🔌 节点模式 启用后会出现部分
- ⏳ 等待批准... - 设备需要网关批准
- ✅ 配对和连接 - 准备接收命令
- 点击设备ID进行复制,用于审批命令
深层链接
OpenClaw 注册“openclaw://” URL 方案以实现自动化和集成:
| 链接 | 描述 |
|---|---|
openclaw://设置 | 打开设置对话框 |
openclaw://聊天 | 打开网络聊天窗口 |
openclaw://仪表板 | 在浏览器中打开仪表板 |
openclaw://dashboard/sessions | 打开特定仪表板页面 |
openclaw://send?message=Hello | 打开带有预填充文本的“快速发送” |
openclaw://agent?message=Hello | 直接发送消息(需确认) |
即使 Molty 已经在运行,深层链接也可以工作 - 它们通过 IPC 转发。
📦 OpenClaw.CommandPalette
PowerToys 命令面板扩展可快速访问 OpenClaw。
命令
- 🦞 打开仪表板 - 启动 OpenClaw Web 仪表板
- 💬 网络聊天 - 打开嵌入式网络聊天窗口
- 📝 快速发送 - 打开“快速发送”对话框撰写消息
- ⚙️ 设置 - 打开 OpenClaw 托盘设置对话框
安装
- 运行 OpenClaw Tray 安装程序并勾选 “安装 PowerToys Command Palette 扩展”,或者
2.手动注册:
Add-AppxPackage -Register "$env:LOCALAPPDATA\OpenClawTray\CommandPalette\AppxManifest.xml" -ForceApplicationShutdown - 打开命令面板(
Win+Alt+Space)并输入“OpenClaw”以查看命令
有关详细设置和故障排除,请参阅 docs/POWERTOYS.md。
📦 OpenClaw.Shared
OpenClawGatewayClient- 用于网关协议的 WebSocket 客户端IOpenClawLogger- 日志接口- 数据模型(SessionInfo、ChannelHealth 等)
- 通道控制(通过网关启动/停止通道)
发展
项目结构
openclaw-windows-node/
├── src/
│ ├── OpenClaw.Shared/ # 共享网关库
│ ├── OpenClaw.Tray.WinUI/ # 系统托盘应用程序 (WinUI 3)
│ └── OpenClaw.CommandPalette/ # PowerToys 扩展
├── 测试/
│ ├── OpenClaw.Shared.Tests/ # 共享库测试
│ └── OpenClaw.Tray.Tests/ # Tray 应用程序辅助测试
├── 文档/
│ └── molty1.png # 截图
├── moltbot-windows-hub.slnx # 解决方案文件(历史名称)
├── 自述文件.md
├── 许可证
└── .gitignore配置
- 设置:
%APPDATA%\OpenClawTray\settings.json - 日志:
%LOCALAPPDATA%\OpenClawTray\openclaw-tray.log
默认网关:ws://localhost:18789
第一次运行
在没有令牌的情况下首次运行时,Molty 会显示一个欢迎对话框:
- 解释开始需要什么
- 令牌设置的文档链接
- 打开“设置”以配置连接
许可证
MIT 许可证 - 请参阅 LICENSE
以前称为 Moltbot,以前称为 Clawdbot

