IoPython is a professional Visual Studio Code extension designed to streamline embedded systems development with MicroPython. By seamlessly integrating mpremote and esptool, IoPython provides a comprehensive, high-performance toolkit for managing, flashing, and interacting with microcontrollers (ESP32, RPi Pico, etc.) directly from your sidebar.
- 🎛️ Interactive Sidebar Dashboard: A permanent control panel to monitor device status (RAM, Storage, Platform) and trigger actions while you code.
- 📂 Recursive File Explorer: Navigate your device's filesystem with a native-feeling Tree View. Support for colapsing folders and hierarchical management.
- 🗑️ Smart Deletion: Delete files and directories recursively (rm -rf logic). Bypasses
OSError 39and Webview sandbox restrictions with custom confirmation modals. - 🔄 Ignore-Aware Syncing: Synchronize your project while automatically respecting
.gitignore. Never uploadnode_modulesor.gitto your board again. - ⚡ Quick Connection: Instant port scanning, manual IP selection for WIFI/WebREPL, and persistent connection status.
- 🖥️ Integrated REPL: Open the MicroPython Serial Monitor directly in the VS Code terminal.
- 🛠️ Firmware & Flash Tools: Erase flash, download official MicroPython firmwares, and flash
.binfiles with a single click.
IoPython relies on Python and standard MicroPython tooling. Ensure you have the following installed:
- Python 3.7+
- mpremote:
pip install mpremote - esptool:
pip install esptool(for ESP-based boards)
- Initialize: Run
IoPython: Init Projectfrom the Command Palette to create youriopython.toml. - Connect: Use the Sidebar Dashboard or the Status Bar to select your port and connect.
- Develop: Write your code, then click
$(sync) Syncto upload only relevant project files (respecting your.gitignore). - Monitor: Click
$(terminal) REPLto interact with your board in real-time.
IoPython standardizes your setup with a simple configuration file:
[project]
name = "MyAwesomeProject"
[device]
target = "ESP32"
port = "COM3"
baudrate = 115200| Command | Description |
|---|---|
IoPython: Open Dashboard |
Opens/Focuses the sidebar dashboard. |
IoPython: Init Project |
Generates a template iopython.toml. |
IoPython: Sync Project |
Uploads files, filtering via .gitignore. |
IoPython: Clear/Delete Project |
Wipes the board's filesystem recursively. |
IoPython: Open Serial Monitor |
Launches mpremote repl. |
IoPython: Erase Flash |
Wipes device memory using esptool. |
Licensed under the MIT License.

