用途
openclaw-windows-node 是 OpenClaw AI 助手的 Windows 配套套件技能,用于构建和扩展 Windows 端组件。它提供三部分:WinUI 3 系统托盘应用(Molty)、共享网关客户端库,以及 CLI 工具。
主要能力
- 系统托盘应用:WinUI 3 应用,带浮动菜单,可显示网关状态、会话、通道、用量、节点,以及 Command Center 诊断和自动更新。
- Node 模式能力:启用后可将 Windows 暴露为可控节点,支持 system.notify、system.run、canvas.present、screen.snapshot、camera.snap、stt.transcribe、tts.speak、location.get、device.info 等方法。
- 网关客户端:共享 C# 库,用于 WebSocket 连接、配对、发布/订阅与 RPC。
- CLI 验证器:命令行工具,用于测试网关连通性与 chat.send。
- 自动更新:集成 GitHub Releases,支持通道选择(stable/alpha/dev)。
- 深链接:通过 openclaw:// URL 方案与命名管道 IPC 实现外部激活。
环境要求与安装
前置条件:Windows 10 20H2+ 或 Windows 11;.NET 10.0 SDK(winget install Microsoft.DotNet.SDK.10);WinUI 构建需要 Windows 10 SDK(通过 Visual Studio 或独立安装);WebView2 运行时(现代 Windows 已预装)。
构建命令:
- 检查前置条件:
.\build.ps1 -CheckOnly - 构建全部项目:
.\build.ps1 - 构建指定项目:
.\build.ps1 -Project WinUI - ARM64 构建:
dotnet build src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj -r win-arm64 - 构建 MSIX 包(用于摄像头/麦克风授权提示):
dotnet build src/OpenClaw.Tray.WinUI -r win-x64 -p:PackageMsix=true
运行托盘应用:
- 构建并启动:
.\run-app-local.ps1 - 不重新构建直接运行:
.\run-app-local.ps1 -NoBuild - 隔离运行(使用独立设置文件测试):
.\run-app-local.ps1 -Isolated - 测试 alpha 更新:
.\run-app-local.ps1 -Configuration Release -Isolated -UpdateChannel alpha
运行 CLI:
- 查看帮助:
dotnet run --project src/OpenClaw.Cli -- --help - 使用托盘设置发送消息:
dotnet run --project src/OpenClaw.Cli -- --message "test message" - 循环发送并探测:
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 "$env:OPENCLAW_TOKEN" --message "test"
项目结构
openclaw-windows-node/ ├── src/ │ ├── OpenClaw.Tray.WinUI/ # 系统托盘应用(WinUI 3) │ │ ├── Services/ # 网关、通知、更新、节点服务 │ │ ├── ViewModels/ # MVVM 视图模型 │ │ ├── Views/ # XAML 页面与窗口 │ │ ├── Capabilities/ # 节点能力实现 │ │ └── Models/ # 数据模型 │ ├── OpenClaw.Shared/ # 网关客户端库 │ │ ├── GatewayClient.cs # WebSocket 客户端 │ │ ├── Models/ # 网关 API 的 DTO │ │ └── Extensions/ # 辅助方法 │ └── OpenClaw.Cli/ # CLI 验证器 └── docs/ # 文档
关键组件
GatewayClient(共享库):核心 WebSocket 客户端,用于 OpenClaw 网关集成。示例代码演示创建客户端、订阅事件、连接、订阅主题、发送 RPC 请求(如 chat.send)、取消订阅与断开连接。
节点注册与能力:NodeService 在 Node 模式启用时注册节点,声明 capabilities 列表(system.notify、system.run、canvas.present、screen.snapshot、camera.snap、stt.transcribe、tts.speak、location.get、device.info),并通过 node.register、node.response 与网关通信。
能力实现示例(资料中给出的代码片段):
- SystemNotifyCapability:使用 ToastContentBuilder 显示本地 Toast 通知。
- ScreenSnapshotCapability:通过 Graphics.CopyFromScreen 截屏并转为 base64,支持 display 与 format 参数。
- CameraSnapCapability:使用 MediaCapture 拍照并以 base64 返回,支持 deviceId 与 format 参数。
- SttTranscribeCapability:使用 SpeechRecognizer 进行连续识别,支持 durationSec 与 language 参数,要求设置中启用 STT。
- TtsSpeakCapability:使用 SpeechSynthesizer 或 ElevenLabs(通过 ELEVENLABS_API_KEY 环境变量)进行语音合成并播放,支持 text、voice、provider 参数。
- CanvasPresentCapability:通过 WebView2 在画布窗口展示 url 或 html,支持 width、height 参数。
通知服务:处理 Windows Toast 通知并支持智能分类(示例代码展示了 ShowNotificationAsync 调用,资料在此处被截断)。
适用场景
适合在 Windows 上运行 OpenClaw 配套客户端、需要将 Windows 作为受控节点接入 OpenClaw、需要托盘状态显示、快速发送、内嵌聊天、通知、截屏、摄像头、语音输入输出与画布展示等能力的用户。
限制
资料未提供该技能的分类信息、收费方式与价格。部分示例代码(如通知服务)在资料中未完整给出。所有构建与运行命令需在 Windows 环境执行,Node 能力受 Windows 授权提示与设置开关限制(例如 STT 需在设置中启用)。其他未在资料中说明的细节暂未提供。