Professional MicroPython Tooling with Thonny’s Simplicity
MPY Workbench bridges the gap between the power of VS Code and the "it just works" experience of Thonny. Built on top of the official mpremote engine, it provides a stable, high-performance workflow for professional MicroPython development without the CLI friction.
- 📂 Remote file explorer for the device (open, download, upload, rename, delete)
- 🔄 Two-way sync: compare local files with the device and sync changed files
- 📝 Create a new file in the Files view and upload it to the board on first save
- 💻 Integrated MicroPython REPL terminal
- ⏯️ Send commands to the board (stop, soft reset, etc.)
⚡ Connect to board and run a file

🔄 Autosync local folder contents

These commands perform full or incremental synchronization between your local workspace and the connected MicroPython board:
- Upload all Local → Board: Uploads all non-ignored local files to the device.
- Download all Board → Local: Downloads all board files, overwriting local copies.
- Delete all files on board: Removes all files on the device.
MPY Workbench: Refresh— refresh the file treeMPY Workbench: Upload Active File— upload the current editor fileMPY Workbench: Select Serial Port— pick device portMPY Workbench: Open REPL Terminal— open MicroPython REPLMPY Workbench: Toggle workspace Auto-Sync on Save— enable/disable workspace auto-sync
The extension stores per-workspace settings and manifests inside a workspace folder named .mpy-workbench at your project root.
- Workspace override file:
.mpy-workbench/config.json - Sync manifest:
.mpy-workbench/esp32sync.json
Use the command MPY Workbench: Toggle workspace Auto-Sync on Save to enable or disable auto-sync for the current workspace. If no workspace config exists the extension falls back to the global setting mpyWorkbench.autoSyncOnSave (default: false).
- mpremote (>= 1.26) — Used internally for all board operations (file management, REPL connection, command execution). Older versions (e.g. 1.24.x) can cause the error
path, next_commandon Upload all files, Download all files, and Check for differences. - Install or upgrade:
pip install -U mpremote
The Python path used by the extension can be adjusted in the extension settings if a specific interpreter needs to be selected.
- ✅ Broaden board compatibility (currently tested only with ESP32-S3 and ESP32-C3)
- 🔌 Add firmware flashing support for boards
- 🪟 Perform full Windows testing: validate mpremote compatibility with COM ports and ensure consistent behavior of file operations and REPL across Windows environments
Currently optimized and tested for ESP32-S3 and ESP32-C3.
- Full Windows validation (COM port consistency).
- Integrated firmware flashing.
- Expanded board support (RP2040, STM32).
This project is in active development. I use it daily for my professional projects and aim to respond to issues and PRs quickly. If you find a bug or have a feature request, please open an issue.
License: MIT
MIT — see the LICENSE file in this repository.