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.1.0.tar.gz (18.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.1.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: edesto_dev-0.1.0.tar.gz
  • Upload date:
  • Size: 18.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.1.0.tar.gz
Algorithm Hash digest
SHA256 31939721b376cfaf17b6de805225d9802fb0e64afe6b737b60ac338c86ddc90a
MD5 b987caf3f7cfcc3c13c9c5ccf97535b8
BLAKE2b-256 a0a538019714d84fc3dda7fba1b888427305c84e3c68d484b0fad82081ad0a5e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: edesto_dev-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6bc8d50bedb58c23b6d50db55840e6e5fb3baab1ad74db89eaa7dee7d0a0ff7c
MD5 3c0e534f50f0078c43d506fcc5cc956f
BLAKE2b-256 1d6ee2e6eb43c9a14790970abc018f3c19c6ac5dc168708f55d7d204fa165244

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