ESPBrew is a command-line tool that supports building and flashing ESP32 projects across multiple development frameworks. It provides both a terminal user interface (TUI) and CLI mode for automating builds, along with optional remote board management capabilities.
ESPBrew currently supports 10 ESP32 development frameworks:
- ESP-IDF (C/C++) - Traditional ESP32 development
- Rust no_std - Embedded Rust with esp-hal/Embassy
- Arduino - Arduino framework with arduino-cli
- PlatformIO - Cross-platform IoT development
- MicroPython - Python for microcontrollers
- CircuitPython - Python for embedded systems
- Zephyr RTOS - Real-time operating system
- NuttX RTOS - POSIX-compliant RTOS
- TinyGo - Go for embedded systems
- Jaculus - JavaScript runtime for ESP32
- Multi-Framework Support: Single tool for ESP-IDF, Rust, Arduino, PlatformIO, MicroPython, CircuitPython, Zephyr, NuttX, TinyGo, and Jaculus
- TUI Mode: Interactive terminal interface for development
- CLI Mode: Command-line interface suitable for CI/CD automation
- Server Mode: Optional web dashboard for remote board management
- Cluster Mode: Distributed ESP32 device management for parallel flashing
- Smart Caching: Skips rebuilds when binaries are up to date
- Multi-Board Support: Automatic board detection and configuration
curl -L https://georgik.github.io/espbrew/install.sh | bashbrew tap georgik/espbrew
brew install espbrewgit clone https://github.com/georgik/espbrew.git
cd espbrew
cargo build --release# Interactive TUI mode
espbrew
# List boards
espbrew boards
# Build and flash
espbrew --cli build
espbrew --cli flash --port /dev/ttyUSB0
# Monitor serial output
espbrew --cli monitor --port /dev/ttyUSB0For detailed documentation, see:
For most operations, ESPBrew uses espflash for flashing, which means you don't need to install ESP-IDF unless you're building ESP-IDF projects.
Supported chips: ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2, ESP32-P4
Platforms: macOS, Linux, Windows
MIT