Wokwi Python Client 🚀
Typed Python SDK for the Wokwi Simulation API with both async and synchronous interfaces
TL;DR: Run and control your Wokwi simulations from Python with first-class type hints, zero boilerplate, and both async and synchronous APIs.
Wokwi is a platform for creating and running simulations of electronic circuits and embedded systems. It supports a wide range of hardware platforms, including ESP32 family, Arduino, Raspberry Pi, STM32 and more.In addition, it supports a wide range of peripherals, including sensors, displays, motors, and debugging tools.
Wokwi Python Client is a Python SDK for the Wokwi Simulation API. It provides two client interfaces:
WokwiClient: Async client with full asyncio support for modern Python applicationsWokwiClientSync: Synchronous client that mirrors the async API for traditional blocking code
Both clients allow you to run and control your Wokwi simulations from Python in a typed, easy-to-use way. You can use them to automate your embedded testing and development workflows.
Installation requirements
- Python ≥ 3.9
- An API token from https://wokwi.com/dashboard/ci.
Install the library with:
pip install wokwi-client
Running the examples
Async Example
The basic async example is in the examples/hello_esp32/main.py file. It shows how to:
- Connect to the Wokwi Simulator
- Upload a diagram and firmware files
- Start a simulation
- Monitor serial output asynchronously
You can run the async example with:
pip install -e .[dev]
python -m examples.hello_esp32.main
Sync Example
The synchronous example is in the examples/hello_esp32_sync/main.py file. It demonstrates the same functionality using the blocking WokwiClientSync:
pip install -e .[dev]
python -m examples.hello_esp32_sync.main
ESP-IDF Example
The ESP-IDF example is in the examples/hello_esp32_idf/main.py file. It demonstrates uploading ESP-IDF firmware using flasher_args.json:
pip install -e .[dev]
python -m examples.hello_esp32_idf.main
For more examples, see the examples directory.
Documentation
The API documentation is available at https://wokwi.github.io/wokwi-python-client/.
Development
To run the tests, set the WOKWI_CLI_TOKEN environment variable (you can get a token from https://wokwi.com/dashboard/ci) and run the following command:
hatch run dev:pytest
To run the linter, run the following command:
hatch run ruff format --check .
hatch run ruff check .
To run the type checker, run the following command:
hatch run mypy .
Creating a new release
To create a new release, run the following commands:
git tag -m "v0.0.6" v0.0.6
git push --follow-tags
Replace 0.0.6 with the new version number.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Metadata
Release files for wokwi-client 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wokwi_client-0.4.1.tar.gz | 23.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wokwi_client-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.7 kB
Release files / wokwi_client-0.4.1.tar.gz
| Download URL | wokwi_client-0.4.1.tar.gz |
|---|---|
| Size | 23.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01f4d76f7cf845c2abad7928b16232f8baa34d40af4be8f108627d1f56b3f58f
|
|
BLAKE2b-256 checksum How to use checksums |
1a742cd02380b03458daf485883786d350fcffb112c18142b60c935c19052661
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / wokwi_client-0.4.1-py3-none-any.whl
| Download URL | wokwi_client-0.4.1-py3-none-any.whl |
|---|---|
| Size | 27.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4912fe8863eb30665f4682e8e75fb2360c53c8c21dfb2fdd1ec49a0e994259b6
|
|
BLAKE2b-256 checksum How to use checksums |
238526af8af0d89e75d953edb98d02e351c4091ef6e604fed7d080467683f734
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency log