---
title: How Wendy works
description: Understand targets, app configuration, and the build and deploy loop.
---

Start with the [quickstart](../) if you have not run an app yet.

## Wendy in 60 seconds

```text
YOUR DEVELOPMENT MACHINE
  Wendy CLI / editor
          |
          | build, run, debug
          v
YOUR TARGET
  WendyOS, or an existing machine with Wendy Agent
    Your app
    Camera / GPU / GPIO / ROS 2
          |
          | optional enrollment
          v
  Wendy Cloud: fleet management and remote deployment
```

| Name | What it does |
| --- | --- |
| Wendy CLI | The `wendy` tool on your development machine. |
| WendyOS | Wendy's Linux OS for supported hardware and the simulator. It includes the agent. |
| Wendy Agent | Runs on the target and manages your apps. Install it on an existing Linux or supported Mac machine. |
| Wendy Cloud | Optional remote access and fleet management. |
| `wendy.json` | Your app's configuration, including its target platform and hardware permissions. |

## Your development machine and your target

The CLI runs on your development machine. A target is the machine that runs your app. WendyOS includes Wendy Agent; existing Linux and supported Mac machines can run the agent without replacing their OS. A simulator is a local VM running WendyOS.

`wendy run` selects a target, detects the project, builds for that target, uploads the result, starts the app, and attaches logs. Use `wendy run --watch` to repeat that loop when source files change.

Linux targets run containers. Mac targets run native macOS apps. ESP32 uses Wendy Lite and has a separate native firmware workflow.

## App configuration

[`wendy.json`](../advanced/apps/wendy.json/) names your app, chooses its platform, and declares the capabilities it needs. Entitlements grant access to hardware and other resources. A simulator can exercise the software deployment path but does not provide physical hardware access.

## Optional cloud management

You can develop locally without enrolling in Wendy Cloud. [Cloud](../cloud/) adds remote access and fleet management when you need to deploy beyond your local network.

## Deeper explanations

- [Device selection](../advanced/clients/wendy-cli/device-selection/)
- [Build detection and toolchains](../advanced/clients/wendy-cli/commands/build/)
- [Multi-service apps](../advanced/apps/wendy-services/)
- [WendyOS internals](../advanced/wendyos/requirements/)
