Wendy Wendy Labs
winget install --id=WendyLabs.Wendy -e CLI for building and deploying apps to WendyOS edge devices.
winget install --id=WendyLabs.Wendy -e CLI for building and deploying apps to WendyOS edge devices.
brew tap wendylabsinc/tap
brew install wendy
For the nightly (prerelease) version:
brew tap wendylabsinc/tap
brew install wendy-nightly
To update:
brew upgrade wendy
Debian/Ubuntu (.deb):
sudo apt install ./wendy__.deb
Fedora/RHEL (.rpm):
sudo rpm -i wendy-..rpm
Arch Linux (AUR):
yay -S wendy
Pre-built binaries for Linux, macOS, and Windows are available on the Releases page.
The CLI is written in Go. To build from source:
cd go
go build -o wendy ./cmd/wendy
On macOS, CGO is required (for CoreBluetooth). It is enabled by default when using the standard Go toolchain, but if you have explicitly disabled it:
cd go
CGO_ENABLED=1 go build -o wendy ./cmd/wendy
The wendy-agent requires Swift 6.2 or later. On macOS, Xcode 16.2 or later is needed.
To build and run the agent locally:
swift run wendy-agent
The device needs to run the wendy-agent utility. We provide pre-build Wendy images for the Raspberry Pi and the NVIDIA Jetson Orin Nano. These are preconfigured for remote debugging and have the wendy-agent preinstalled.
WendyAgent supports both NetworkManager and ConnMan for WiFi configuration. The agent will automatically detect which network manager is available on the system:
You can configure the network manager preference using the WENDY_NETWORK_MANAGER environment variable on the agent:
# Auto-detect (default)
export WENDY_NETWORK_MANAGER=auto
# Prefer ConnMan if available, fall back to NetworkManager
export WENDY_NETWORK_MANAGER=connman
# Prefer NetworkManager if available
export WENDY_NETWORK_MANAGER=networkmanager
# Force ConnMan (will fail if not available)
export WENDY_NETWORK_MANAGER=force-connman
# Force NetworkManager (will fail if not available)
export WENDY_NETWORK_MANAGER=force-networkmanager
If no environment variable is set, the agent will auto-detect the available network manager.
The wendy CLI communicates with a wendy-agent. The agent needs uses Docker for running your apps, so Docker needs to be running.
On a Debian (or Ubuntu) based OS, you can do the following:
# Install Docker
sudo apt install docker.io
# Start Docker and keep running across reboots
sudo systemctl start docker
sudo systemctl enable docker
# Provide access to Docker from the current user
sudo usermod -aG docker $USER
Then, you can download and run your wendy-agent on the device. We provide nightly tags with the latest wendy-agent builds in this repository.
If you're planning to test the wendy-agent on macOS, you'll need to build and run the agent yourself from this repository.
swift run wendy-agent
cd Examples/HelloWorld
wendy run
This builds the example using the Swift Static Linux SDK and runs it on your device in a container.
A more advanced example demonstrating HTTP server capabilities:
cd Examples/HelloHTTP
wendy run
To debug an app, use the --debug flag:
wendy run --debug
You can then attach LLDB to port 4242:
lldb
(lldb) target create .wendy-build/debug/HelloWorld
(lldb) gdb-remote localhost:4242
The Wendy CLI includes privacy-first anonymous usage analytics to help improve the developer experience. Analytics helps us understand which commands are used most, identify common errors, and prioritize improvements.
We never collect file paths, hostnames, project names, code, or any personally identifiable information.
Check current analytics status:
wendy analytics status
Disable analytics:
wendy analytics disable
# Or set environment variable
export WENDY_ANALYTICS=false
Re-enable analytics:
wendy analytics enable
Analytics is automatically disabled in CI environments.