Teach AI coding agents to compile, flash, and validate firmware on real hardware. One command to bridge any agent and any board.
Project description
edesto-dev
Teach AI coding agents how to compile, flash, and validate firmware on your hardware.
AI coding agents stop at the terminal. edesto init gives them the full embedded development loop — compile, flash, read serial output, iterate — so they can autonomously develop and debug firmware on real hardware. Works with Claude Code, Cursor, Codex, and OpenClaw.
Install
pipx install edesto-dev
Quick Start
# 1. Plug in your board and run:
edesto init
# 2. Open your AI coding agent in the same directory
# 3. Tell it what to do:
# "The sensor readings are wrong. Find and fix the bug."
That's it. edesto init auto-detects your board, serial port, and toolchain. It generates a SKILLS.md that teaches your agent the write/compile/flash/validate loop, with board-specific pin references, pitfalls, and serial conventions.
You can also specify everything manually:
edesto init --board esp32 --port /dev/cu.usbserial-0001
edesto init --board esp32 --port /dev/ttyUSB0 --toolchain arduino
How It Works
edesto init detects your project and generates a SKILLS.md (plus copies as CLAUDE.md, .cursorrules, and AGENTS.md) that gives your AI agent:
- Compile and flash commands for your specific toolchain
- A serial validation snippet to read device output and verify changes
- Board-specific pin references, capabilities, and common pitfalls
- Troubleshooting guidance for common failures (port busy, baud mismatch, upload timeout)
The validation step is what makes this work. Your firmware prints structured serial output ([READY], [ERROR], [SENSOR] key=value) and the agent reads it to verify its own changes on real hardware.
Supported Toolchains
| Toolchain | Detection | Commands |
|---|---|---|
| Arduino | .ino files |
arduino-cli compile, arduino-cli upload |
| PlatformIO | platformio.ini |
pio run, pio run --target upload |
| ESP-IDF | CMakeLists.txt + sdkconfig |
idf.py build, idf.py flash |
| MicroPython | boot.py / main.py |
mpremote connect, mpremote cp |
| Custom | edesto.toml |
Your commands |
If edesto can't detect your toolchain, it prompts you to enter compile/upload commands and saves them to edesto.toml for next time.
Supported Boards
| Slug | Board |
|---|---|
esp32 |
ESP32 |
esp32s3 |
ESP32-S3 |
esp32c3 |
ESP32-C3 |
esp32c6 |
ESP32-C6 |
esp8266 |
ESP8266 |
arduino-uno |
Arduino Uno |
arduino-nano |
Arduino Nano |
arduino-mega |
Arduino Mega 2560 |
rp2040 |
Raspberry Pi Pico |
teensy40 |
Teensy 4.0 |
teensy41 |
Teensy 4.1 |
stm32-nucleo |
STM32 Nucleo-64 |
Any board works with PlatformIO, ESP-IDF, MicroPython, or a custom toolchain — the table above is for Arduino auto-detection. Run edesto boards to see the full list.
Commands
edesto init # Auto-detect everything
edesto init --board esp32 # Specify board, auto-detect port
edesto init --board esp32 --port /dev/ttyUSB0 # Fully manual
edesto init --toolchain platformio # Force a specific toolchain
edesto boards # List supported boards
edesto boards --toolchain arduino # Filter by toolchain
edesto doctor # Check your environment
Examples
Three example projects in examples/, each with an intentional bug for your AI agent to find and fix:
- sensor-debug — Temperature sensor with a unit conversion bug. Celsius values are correct but Fahrenheit readings are off.
- wifi-endpoint — ESP32 HTTP server where
/healthreturns JSON with the wrong Content-Type header. - ota-update — ESP32 with OTA support. The agent updates the version string and pushes firmware wirelessly.
Prerequisites
- A supported board connected via USB
- Python 3.10+
- Your toolchain's CLI installed (e.g.,
arduino-cli,pio,idf.py,mpremote)
Run edesto doctor to check your setup.
About
Built by Edesto. We build tools for robotics and embedded teams.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edesto_dev-0.4.0.tar.gz.
File metadata
- Download URL: edesto_dev-0.4.0.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
590c27cfd8277d2e1a5ac351aeed47a1f5cad8b692a424977d4e4a3f6922ab88
|
|
| MD5 |
372a895ec8ab73c71fa4e6a21d1c0392
|
|
| BLAKE2b-256 |
0ea785536114ecc4dd18ece7d157f01f474a78ae90fd046a97f6da96c33ab546
|
File details
Details for the file edesto_dev-0.4.0-py3-none-any.whl.
File metadata
- Download URL: edesto_dev-0.4.0-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56cc84d2b2ef4176de58742c195cb3079b76d78d05af878d1894e99d5474d377
|
|
| MD5 |
562cad392aa7ccdee1ac36607e28d9da
|
|
| BLAKE2b-256 |
c6500e84a52fef7a5c3ee3b0c5a4d2f161d0953dd8f7dad792104831eb539d5e
|