关于 wendy
wendy 是用于在 WendyOS 上开发和运行应用的技能;WendyOS 面向边缘设备及虚拟机。内容涵盖 Wendy CLI 的项目初始化、部署、设备管理、权限配置、调试和遥测。
主要功能
- 01初始化并运行 Wendy Lite 项目
- 02发现设备并配置 WiFi
- 03安装和更新 WendyOS 设备
- 04在 wendy.json 中配置应用权限
- 05进行远程调试并导出遥测
适用场景
- 01将 Swift 应用构建并部署到边缘设备
- 02发现设备或为其连接 WiFi
- 03为应用启用 GPU 或摄像头访问
- 04调试设备上运行的应用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ wendylabsinc/ claude-skills --skill wendy安装后在 Claude Code 中输入/wendy确认已加载。
附带文件references/wendy.json.md
详细介绍
WendyOS
WendyOS 是一款面向边缘计算的嵌入式 Linux 操作系统。它支持:
- NVIDIA Jetson 设备(生产环境,支持 OTA 更新)
- Raspberry Pi 4/5(边缘设备)
- ARM64/AMD64 虚拟机(开发)
了解 Wendy
在使用 Wendy 命令之前,请先运行以下命令,了解所有可用命令:
wendy --experimental-dump-help
此命令会输出包含所有命令、标志和文档的 JSON 结构。
每次调用 wendy 命令时,请使用 JSON 结构中的选项来提供结构化 JSON 输出。这也可以避免交互式对话框和错误。使用 --json 或 -j 来提供 JSON 输出。
常见任务
- 运行应用:
wendy run - 创建新项目:
wendy init - 发现设备:
wendy discover - 更新 Agent:
wendy device update - 配置 WiFi:
wendy device wifi connect - 在外部驱动器上安装 WendyOS:
wendy os install - 使用
wendy device set-default将设备设为默认设备
wendy init — 创建新的 Wendy Lite 项目
创建包含所需脚手架的新 Wendy Lite 项目:
wendy init
此命令会创建新的项目目录,其中包含 wendy.json 配置文件,以及构建和部署 Wendy Lite 应用所需的结构。
wendy run — 运行 Wendy Lite 项目
在已连接的设备上构建、上传并运行 Wendy Lite 项目:
wendy run
此命令会处理完整的开发周期:编译应用、将二进制文件传输到设备并启动运行。使用 --verbose 查看详细的构建输出。
wendy device wifi connect — 设置 WiFi
在已连接的设备上配置 WiFi 凭据:
wendy device wifi connect
此命令会将 WiFi SSID 和密码发送到设备,使其能够连接到本地网络。设备必须先通过 USB 或现有连接建立可访问状态。
设置与配置
Wendy CLI 通过 gRPC(TCP)端口 50051 连接设备。如果尚未安装 Wendy CLI,可以使用 brew install wendy 进行安装。
设备通过 USB 或 LAN 发现。如果找不到设备,请让用户检查连接,或通过 USB 连接设备。
如果设备尚未安装操作系统,请使用 wendy os install 将操作系统安装到外部驱动器。对于 NVIDIA Jetson 设备,操作系统通常安装在 NVMe 上。
开发
WendyOS 是一款基于 Linux 的容器化操作系统。它使用 Linux 容器运行应用。
WendyOS 将 Swift.org 作为其旗舰语言。它使用 Swift Package Manager 和 Swift Container Plugin 来构建和运行应用。Wendy CLI 会为你交叉编译 Swift。
也支持其他编程语言,但需要使用 Dockerfile 来构建应用。
权限
WendyOS 使用通过 wendy.json 管理的权限系统来管理应用权限。这反映了设备上容器的配置方式。
详细的权限配置请参阅 references/wendy.json.md。
快速入门
- 创建新的 Swift 项目,或进入现有项目目录
- 初始化 wendy.json:
wendy project init - 添加所需权限(例如,为 Web 服务器添加权限):
wendy project entitlements add network --mode host - 在设备上运行:
wendy run
常见权限
| 权限 | 使用场景 |
|---|---|
network(host 模式) | Web 服务器、HTTP API、传入连接 |
gpu | ML 推理、计算机视觉(仅限 Jetson) |
video | 摄像头访问、视频采集 |
audio | 麦克风、扬声器 |
bluetooth | BLE 设备、蓝牙通信 |
远程调试
WendyOS 内置了对 Swift 应用远程调试的支持。使用 wendy run --debug 来包含并启动调试会话。
此操作会在端口 4242 上开放 GDB 服务端。
从 VS Code 连接
- 运行
wendy run --debug - 在 VS Code 中使用 CodeLLDB 扩展
- 连接到
<device-ip>:4242
可观测性
WendyOS 会在每台设备上运行本地 OpenTelemetry 收集器。应用应将遥测数据(日志、指标、追踪)报告给此本地收集器。
配置
OTel 导出请使用 HTTP 协议(不要使用 gRPC):
import OTel
var config = OTel.Configuration.default
config.traces.otlpExporter.protocol = .httpProtobuf
config.traces.otlpExporter.endpoint = "http://localhost:4318"
config.metrics.otlpExporter.protocol = .httpProtobuf
config.metrics.otlpExporter.endpoint = "http://localhost:4318"
config.logs.otlpExporter.protocol = .httpProtobuf
config.logs.otlpExporter.endpoint = "http://localhost:4318"
let observability = try OTel.bootstrap(configuration: config)
或者通过环境变量配置:
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
本地收集器负责将遥测数据转发到后端基础设施。
故障排除
| 问题 | 解决方案 |
|---|---|
| 未找到设备 | 检查 USB/LAN 连接,运行 wendy discover |
| 网络访问被拒绝 | 使用主机模式添加网络权限 |
| 未检测到 GPU | 添加 gpu 权限(仅限 Jetson) |
| 未找到摄像头 | 添加 video 权限,确认摄像头位于 /dev/video0 |
| 构建失败 | 检查 Swift 版本兼容性,尝试运行 wendy run --verbose |
参考文件
根据具体主题按需加载以下文件:
references/wendy.json.md- 应用配置、权限(network、gpu、video、audio、bluetooth)、常见配置、CLI 命令
延伸阅读
WendyOS 文档:https://wendy.sh/docs/