Use Claude Code for embedded development. One command to set up the bridge between your AI agent and your hardware.
Project description
edesto-dev
You already have Claude Code. Here's how to use it for embedded development.
AI coding agents stop at the terminal. edesto init teaches them how to compile, flash, and validate firmware on your actual hardware. No extra subscriptions. No cloud. No datasheets leaving your machine.
Install
pipx install edesto-dev
Quick Start
# 1. Plug in your board and run:
edesto init
# 2. Open Claude Code in the same directory:
claude
# 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 and serial port via arduino-cli. Claude Code reads the generated CLAUDE.md, writes firmware, flashes it to your board, reads serial output to verify it works, and iterates until it's correct.
You can also specify the board and port manually:
edesto init --board esp32 --port /dev/cu.usbserial-0001
How It Works
edesto init generates a CLAUDE.md that gives your AI agent the full development loop:
- Edit code (.ino, .cpp, .h files)
- Compile with
arduino-cli - Flash to the board over USB
- Validate by reading serial output from the device
- Iterate if validation fails
The validation step is what makes this work. The CLAUDE.md teaches Claude Code serial conventions ([READY], [ERROR], [SENSOR] key=value) and gives it a Python snippet to read device output. The agent verifies its own changes on real hardware.
Commands
edesto init # Auto-detect board and port, generate CLAUDE.md
edesto init --board esp32 # Specify board, auto-detect port
edesto init --board esp32 --port /dev/ttyUSB0 # Fully manual
edesto boards # List supported boards
edesto doctor # Check your environment
Supported Boards
| Slug | Board | FQBN |
|---|---|---|
esp32 |
ESP32 | esp32:esp32:esp32 |
esp32s3 |
ESP32-S3 | esp32:esp32:esp32s3 |
esp32c3 |
ESP32-C3 | esp32:esp32:esp32c3 |
esp32c6 |
ESP32-C6 | esp32:esp32:esp32c6 |
esp8266 |
ESP8266 | esp8266:esp8266:nodemcuv2 |
arduino-uno |
Arduino Uno | arduino:avr:uno |
arduino-nano |
Arduino Nano | arduino:avr:nano |
arduino-mega |
Arduino Mega 2560 | arduino:avr:mega |
rp2040 |
Raspberry Pi Pico | rp2040:rp2040:rpipico |
teensy40 |
Teensy 4.0 | teensy:avr:teensy40 |
teensy41 |
Teensy 4.1 | teensy:avr:teensy41 |
stm32-nucleo |
STM32 Nucleo-64 | STMicroelectronics:stm32:Nucleo_64 |
Examples
Three example projects in examples/, each with an intentional bug for Claude Code to find and fix:
sensor-debug
A temperature sensor sketch with a unit conversion bug. Celsius values are correct but Fahrenheit readings are off. Claude Code reads serial output, spots the math error, fixes it, and validates.
wifi-endpoint
An ESP32 HTTP server where the /health endpoint returns JSON but with the wrong Content-Type header. Claude Code makes HTTP requests to the device to validate the fix.
ota-update
An ESP32 with OTA support. Claude Code updates the version string and pushes firmware wirelessly, then verifies the new version via serial.
Prerequisites
- arduino-cli installed
- A supported board connected via USB
- Python 3.10+
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.2.0.tar.gz.
File metadata
- Download URL: edesto_dev-0.2.0.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34b56462787067d068acb6754245363fd42c0a7586de607074b83a318efee2dc
|
|
| MD5 |
e12d4598d241f293d2397c87952c2284
|
|
| BLAKE2b-256 |
3b3e3756907b51ddaa272dbde2fdb755313ac85ce6d59ee814b853f50f18155a
|
File details
Details for the file edesto_dev-0.2.0-py3-none-any.whl.
File metadata
- Download URL: edesto_dev-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.2 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 |
afae5e6bacf23c95ee7f154f7f16cb9aed4a0f5c676ee6844bedb2136b6202e4
|
|
| MD5 |
0e9aeb8e16929d7b4affdd839448f353
|
|
| BLAKE2b-256 |
790db5beafdfb4b90a3199ab4b263c909bdceb573fbf4b3dac5fe033bb39cad6
|