Metadata-Version: 2.4
Name: idf-wokwi
Version: 1.1.0
Summary: Wokwi simulation extension for ESP-IDF (idf.py wokwi)
Project-URL: Source, https://github.com/wokwi/idf-wokwi
Project-URL: Issues, https://github.com/wokwi/idf-wokwi/issues
Author-email: Uri Shaked <uri@wokwi.com>
License-Expression: Apache-2.0
Keywords: esp-idf,esp32,idf.py,simulation,wokwi
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Topic :: System :: Emulators
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: wokwi-client>=0.4.0
Description-Content-Type: text/markdown

# idf-wokwi

Wokwi simulation extension for ESP-IDF. Adds `idf.py wokwi` command.

## Installation

```bash
pip install idf-wokwi
```

## Usage

Set `WOKWI_CLI_TOKEN` to your [Wokwi API token](https://wokwi.com/dashboard/ci?utm_source=idf-wokwi).

```bash
export WOKWI_CLI_TOKEN="your-token-here"

# Build and simulate
idf.py build
idf.py wokwi

# CI mode: exit when expected text appears
idf.py wokwi --timeout 10000 --expect-text "Hello world!"
```

## Options

| Option           | Description                                                    |
| ---------------- | -------------------------------------------------------------- |
| `--diagram-file` | Path to `diagram.json` (defaults to project root)              |
| `--timeout`      | Simulation timeout in milliseconds (exit code 42 on timeout)   |
| `--expect-text`  | Exit successfully when this text appears in serial output      |
| `--fail-text`    | Exit with error when this text appears in serial output        |
| `--expect-regex` | Exit successfully when this regex matches a serial output line |
| `--fail-regex`   | Exit with error when this regex matches a serial output line   |

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).
