ESP32 Manager CLI
A simple command-line utility to upload, download, and manage files on ESP32 boards running MicroPython. Supports reliable file transfers with chunked SHA256 per-chunk validation, auto-port detection, and friendly CLI commands.
⚠️ DISCLAIMER: It probably works with other MicroPython boards like ESP8266, Pyboard, etc. but it hasn't been tested.
✨ Features
- 📡 Auto-detect serial port (
/dev/ttyUSB*,CH340,CP210, etc.) - 📂 List files on the device
- ⬆️ Reliable file upload with chunked transfers and per-chunk hash validation
- ⬇️ Download and view files from the ESP32
- 📄 Read files (
cat) directly from the device - 🗑️ Remove individual or all files (
cleancommand preservesboot.py) - 🔁 Reset the board and run
main.py - Works out of the box with MicroPython raw REPL
📦 Installation
pip install esp32-manager
Or, install from source:
git clone https://github.com/YOUR_GITHUB_USERNAME/esp32-manager.git
cd esp32-manager
pip install -e .
🚀 Usage
After installation, the CLI is available as:
esp32-manager <command> [options]
Available commands
ls- List files on the ESP32put <files>- Upload one or more filesget <files>- Download files from the ESP32cat <files>- Print file contentsrm <files>- Delete filesclean- Delete all files (exceptboot.py)run- Reboot the board (machine.reset())
Options
--port DEVICE- Serial port (default: auto-detected)--baudrate N- Baudrate (default:115200)--raw- Suppress emojis / extra formatting (for scripting)
🛠 Example
# List files on device
esp32-manager ls
# Upload main.py
esp32-manager put src/main.py
# Upload all files in src/
esp32-manager put src/*
# Download files
esp32-manager get config.json main.py
# Print contents of a file
esp32-manager cat main.py
# Delete a file
esp32-manager rm main.py
# Clean all files (except boot.py)
esp32-manager clean
# Reboot device
esp32-manager run
# Specify port and baudrate
python3 esp32_manager.py put main.py --port /dev/ttyUSB1 --baudrate 921600
# Raw output (no emojis)
python3 esp32_manager.py ls --raw
⚠️ Tip: Use put for all source files (main.py, wifi.py, cam.py, control.py, webserver.py, etc.) to keep your ESP32 in sync with your local project.
📜 License
This project is licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License. A copy of the License is provided in the LICENSE file.
Metadata
Release files for esp32-manager 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| esp32_manager-1.0.1.tar.gz | 14.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| esp32_manager-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.4 kB
Release files / esp32_manager-1.0.1.tar.gz
| Download URL | esp32_manager-1.0.1.tar.gz |
|---|---|
| Size | 14.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4189c52677fa904bfee01ecacef959cd6af85213d0d9d52b3e83482b10f2d8b
|
|
BLAKE2b-256 checksum How to use checksums |
b83e8ec36135f99de1268f677bd09fa46474b14662079d017329be778043ee8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / esp32_manager-1.0.1-py3-none-any.whl
| Download URL | esp32_manager-1.0.1-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9abe91186a0fb6b892b22bcbde93728efcf46ca9659d07f544ebde86b39746d3
|
|
BLAKE2b-256 checksum How to use checksums |
dc9afe2c95d67fc4732ec206b0a910e80091d17464224a973850632c19de0830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|