WendyOS Docs
Wendy CLI

wendy run

Build and run application on a WendyOS device

Syntax

wendy run [flags]

Examples

wendy run
wendy run --watch
wendy run --device my-robot
wendy run --detach

Arguments

No positional arguments are declared in the command synopsis.

Flags

Flags below include inherited options. Types and defaults come from the CLI source. An empty default means no value is configured.

FlagTypeDefaultDescription
--build-hoststring(empty)Build on another WendyOS device; omit the device to open a picker, or use --build-host=DEVICE Value when used without an argument: " ".
--build-typestring(empty)Build type to use when Dockerfile/Containerfile is present alongside Package.swift or Python project markers: docker, swift, or python
--builderstring(empty)Image builder to force for Dockerfile/Containerfile builds: docker, apple-container, or buildkit
--chunkingstringautoContent-defined chunking (CBC) deploy path: auto (try chunk-diff, fall back to registry push), force (chunk-diff only, no fallback), or off (registry push only)
--debounceint400Watch mode (--watch): quiet period in milliseconds after the last change before redeploying
--debugboolfalseEnable debug logging
--deployboolfalseCreate container but do not start it
--detachboolfalseStart container and return without streaming logs, waiting for readiness, or opening the app URL
--devicestring(empty)Target device hostname; wendy run accepts a comma-separated list to deploy one build to several devices (needs a remote build host and --detach). Defaults to $WENDY_DEVICE, then the saved default device
--dockerfilestring(empty)Build file to build from: a Dockerfile, Containerfile, or Stagefile (e.g. Dockerfile.prod, Containerfile, prod.stagefile.yaml); shows a selection menu when multiple build files exist
--envstringArray[]Set an environment variable in the container as KEY=VALUE; repeatable, and overrides wendy.json env of the same key
--gpu-archstring(empty)GPU architecture a Stagefile cuda: stage targets (sm_87); read from the device when one is selected
--hilstring(empty)Run hardware in the loop; omit the device to open a cloud picker, or use --hil=DEVICE Value when used without an argument: " ".
--jsonboolfalseOutput in JSON format
--keep-goingboolfalseMulti-service: deploy services that build successfully instead of aborting the whole group on the first build/push failure
--max-concurrencyint0Multi-service/Compose: max service images to build+push at once (0 = default limit of 4)
--no-restartboolfalseDo not restart on exit
--prefixstring(empty)Project directory to run from instead of the current working directory
--productstring(empty)Swift Package Manager product to build and run
--restart-on-failureboolfalseRestart on failure
--restart-unless-stoppedboolfalseRestart unless manually stopped
--servicestring(empty)Build and run only the named service and its dependencies (multi-service projects)
--skip-cloud-registrationboolfalseDeploy without registering apps in Cloud (offline use)
--stagefile-backendstring(empty)Stagefile compiler backend: dockerfile (default) or llb
--user-argsstringSlice[]Extra arguments to pass to the container
--verboseboolfalseWatch mode (--watch): always show build output (default: hidden unless the build fails)
--watchboolfalseWatch the project directory and redeploy on every change, streaming logs between deploys (same as 'wendy watch')
--yes / -yboolfalseAutomatically accept all interactive prompts

Output

An attached run streams build progress and app logs. When readiness succeeds and a URL can be inferred, it prints a line such as:

App reachable at http://127.0.0.1:3000

The address depends on the target. --detach skips log streaming, host readiness checks, and browser opening. Ordinary single-device agent deployments report configured HTTP endpoints. With --json --detach, one result goes to stdout and progress goes to stderr; readiness: "not_checked" leaves application health unverified. See Details for the result shape and supported modes.

JSON output

The global --json option requests machine-readable output. The CLI also selects JSON mode when no interactive terminal is attached. Support and payloads are command-specific; this flag does not guarantee a single JSON document for commands that stream logs or invoke build tools. Consult Details before parsing command output.

Exit codes

The CLI entry point returns 0 on success and for its user-cancelled or default-cleared results. Other returned errors exit with 1 and print a diagnostic to stderr. Some operations may terminate through subprocess or signal handling; do not infer application health from the CLI exit code alone.

Common errors

Check argument values and flag combinations against the synopsis above. For discovery, build, port, and readiness failures, see deployment troubleshooting. Command-specific constraints are in Details.

See also

Details

Reads wendy.json from the current directory or --prefix directory, builds a container image, and deploys it to the target device.

Command behavior and detailed examples

On this page