wendy/SKILL.md
Expert guidance on building and deploying apps to WendyOS edge devices. Use when developers mention: (1) Wendy or WendyOS, (2) wendy CLI commands, (3) wendy.json or entitlements, (4) deploying apps to edge devices, (5) remote debugging Swift on ARM64, (6) NVIDIA Jetson or Raspberry Pi apps, (7) cross-compiling Swift for ARM64.
npx skillsauth add wendylabsinc/claude-skills wendyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
WendyOS is an Embedded Linux operating system for edge computing. It supports:
Before helping with Wendy commands, run this to learn all available commands:
wendy --experimental-dump-help
This outputs a JSON structure with all commands, flags, and documentation.
Whenever you invoke a wendy command, use the JSON structure options to provide structured JSON output. This will also prevent interactive dialogs and errors. Use --json or -j to provide JSON output.
wendy runwendy initwendy discoverwendy device updatewendy device wifi connectwendy os installwendy device set-defaultwendy init — Create a New Wendy Lite ProjectCreates a new Wendy Lite project with the required scaffolding:
wendy init
This sets up a new project directory with a wendy.json configuration file and the necessary structure for building and deploying a Wendy Lite app.
wendy run — Run a Wendy Lite ProjectBuilds, uploads, and runs a Wendy Lite project on a connected device:
wendy run
This command handles the full development cycle: compiling the app, transferring the binary to the device, and starting execution. Use --verbose for detailed build output.
wendy device wifi connect — Set Up WiFiConfigures WiFi credentials on a connected device:
wendy device wifi connect
This sends WiFi SSID and password to the device so it can connect to the local network. The device must be reachable over USB or an existing connection first.
Wendy CLI connects to a device over gRPC (TCP) port 50051. If Wendy CLI is not installed yet, you can use brew install wendy to install it.
Devices are discovered over USB or LAN. If a device is not found, ask the user to check the connection or to connect it over USB.
If a device is not yet installed, use wendy os install to install the OS to an external drive. For NVIDIA Jetson devices, the OS is commonly installed to NVMe.
WendyOS is a Linux-based containerized operating system. It uses Linux containers to run your apps.
WendyOS uses Swift.org as its flagship language. This uses Swift Package Manager and the Swift Container Plugin to build and run your app. Wendy CLI will cross compile Swift for you.
Other programming languages are supported, but require the use of a Dockerfile to build your app.
WendyOS uses an entitlement system, managed through wendy.json, to manage permissions for your app. This reflects how your container will be set up on the device.
See references/wendy.json.md for detailed entitlement configuration.
wendy project initwendy project entitlements add network --mode hostwendy run| Entitlement | Use Case |
|-------------|----------|
| network (host mode) | Web servers, HTTP APIs, incoming connections |
| gpu | ML inference, computer vision (Jetson only) |
| video | Camera access, video capture |
| audio | Microphone, speakers |
| bluetooth | BLE devices, Bluetooth communication |
WendyOS provides built-in support for remote debugging Swift apps. Use wendy run --debug to include and launch a debugging session.
This exposes a GDB server on port 4242.
wendy run --debug<device-ip>:4242WendyOS runs a local OpenTelemetry collector on each device. Apps should report telemetry (logs, metrics, traces) to this local collector.
Use HTTP protocol (not gRPC) for OTel exports:
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)
Or via environment variables:
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
The local collector handles forwarding telemetry to your backend infrastructure.
| Problem | Solution |
|---------|----------|
| Device not found | Check USB/LAN connection, run wendy discover |
| Network access denied | Add network entitlement with host mode |
| GPU not detected | Add gpu entitlement (Jetson only) |
| Camera not found | Add video entitlement, verify camera at /dev/video0 |
| Build fails | Check Swift version compatibility, try wendy run --verbose |
Load these files as needed for specific topics:
references/wendy.json.md - App configuration, entitlements (network, gpu, video, audio, bluetooth), common configurations, CLI commandsWendyOS documentation at https://wendy.sh/docs/
development
Autonomous continuous integration loop for the Wendy Cloud repository. Use when asked to: (1) iterate on the cloud stack, (2) find and fix bugs in Wendy Cloud, (3) run the cloud test loop, (4) continuously test the Swift broker, (5) scan for regressions after new features. This skill manages the full local dev stack autonomously including starting Docker, the Swift broker, pki-core, running tests, diagnosing failures, and applying fixes.
development
Expert guidance on Swift best practices, patterns, and implementation. Use when developers mention: (1) Swift configuration or environment variables, (2) swift-log or logging patterns, (3) OpenTelemetry or swift-otel, (4) Swift Testing framework or @Test macro, (5) Foundation avoidance or cross-platform Swift, (6) platform-specific code organization, (7) Span or memory safety patterns, (8) non-copyable types (~Copyable), (9) API design patterns or access modifiers.
development
Curated Swift package ecosystem for WendyOS and Linux. Use when developers mention: (1) Swift packages for Linux or ARM64/AMD64, (2) choosing a Swift library, (3) Swift Package Index, (4) swiftpackageindex.com, (5) what Swift library to use, (6) Swift on WendyOS dependencies, (7) edge computing Swift libraries.
development
Expert guidance on building WASM apps for Wendy Lite MCU firmware on ESP32-C6. Use when developers mention: (1) Wendy Lite or wendy-lite, (2) WASM apps on ESP32 or microcontrollers, (3) WendyLite Swift package or import WendyLite, (4) building C/Rust/Swift/Zig apps for ESP32, (5) WAMR runtime on embedded devices, (6) GPIO/I2C/SPI/UART/NeoPixel from WASM, (7) Embedded Swift on WASM or wasm32-none-none-wasm, (8) BLE provisioning on ESP32-C6, (9) uploading WASM binaries to MCU, (10) TLS/networking on ESP32 from Swift.