mcpField
W
wendy

wendy

github.com/wendylabsinc云与 DevOps6273 次安装5 周前更新
代码仓库

关于 wendy

wendy 是用于在 WendyOS 上开发和运行应用的技能;WendyOS 面向边缘设备及虚拟机。内容涵盖 Wendy CLI 的项目初始化、部署、设备管理、权限配置、调试和遥测。

主要功能

  1. 01初始化并运行 Wendy Lite 项目
  2. 02发现设备并配置 WiFi
  3. 03安装和更新 WendyOS 设备
  4. 04在 wendy.json 中配置应用权限
  5. 05进行远程调试并导出遥测

适用场景

  1. 01将 Swift 应用构建并部署到边缘设备
  2. 02发现设备或为其连接 WiFi
  3. 03为应用启用 GPU 或摄像头访问
  4. 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。

快速入门
  1. 创建新的 Swift 项目,或进入现有项目目录
  2. 初始化 wendy.json:wendy project init
  3. 添加所需权限(例如,为 Web 服务器添加权限):wendy project entitlements add network --mode host
  4. 在设备上运行:wendy run
常见权限
权限使用场景
network(host 模式)Web 服务器、HTTP API、传入连接
gpuML 推理、计算机视觉(仅限 Jetson)
video摄像头访问、视频采集
audio麦克风、扬声器
bluetoothBLE 设备、蓝牙通信

远程调试

WendyOS 内置了对 Swift 应用远程调试的支持。使用 wendy run --debug 来包含并启动调试会话。 此操作会在端口 4242 上开放 GDB 服务端。

从 VS Code 连接
  1. 运行 wendy run --debug
  2. 在 VS Code 中使用 CodeLLDB 扩展
  3. 连接到 <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/

评论

支持 Markdown