Skip to main content

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:

  1. Edit code (.ino, .cpp, .h files)
  2. Compile with arduino-cli
  3. Flash to the board over USB
  4. Validate by reading serial output from the device
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edesto_dev-0.3.0.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edesto_dev-0.3.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file edesto_dev-0.3.0.tar.gz.

File metadata

  • Download URL: edesto_dev-0.3.0.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for edesto_dev-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f9a700aca13fe43349fbe76ed5d1f7659b7ecede779742883bade9d6ddc5fa86
MD5 07160d1884cd907bcf07b04b56b40b16
BLAKE2b-256 4b59022547deb8702b44200c4358163c4492b9fc5e3675501e64cbfc164905ef

See more details on using hashes here.

File details

Details for the file edesto_dev-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: edesto_dev-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for edesto_dev-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94960e1838ec67d2ce26f80492f7e653c30c74d4857e553fc830d4f181f3b4f4
MD5 a81b1625e5f242447c3f89bc90ce0fef
BLAKE2b-256 efaab8503005f693ee2a35a1327edd97c0b1800786198758f3b949f92cc3677b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page