A cross-platform, interactive TUI tool to manage, compile, and flash microcontroller projects using arduino-cli, PlatformIO, and ESP-IDF.
Shell
108
114 commits
updated Sep 13, 2026
anodemcu is a premium, interactive TUI (Terminal User Interface) designed to simplify microcontroller development. It transforms the command-line tools into a vibrant, intuitive experience, allowing you to manage boards, ports, libraries, and projects across multiple ecosystems.
[!TIP] Perfect for developers who live in the terminal and want a high-speed, "no-nonsense" workflow for compiling and uploading code.
CMakeLists.txt and platformio.ini), it prompts you to select your preferred platform and saves the choice.export.sh script if it's not active in the current shell environment.fzf for near-instant selection of boards, ports, and libraries.If you are on Arch, this is the recommended way:
yay -S anodemcu
Clone the repository and run the automated installer:
git clone https://github.com/abod8639/anodemcu.git
cd anodemcu
./install.sh
This will install the tool to ~/.local/bin/anodemcu and set up a convenient anode alias.
chmod +x anodemcu
# Run locally
./anodemcu
| Dependency | Purpose | Status |
|---|---|---|
bash | Script execution | Required |
arduino-cli | Arduino compilation and upload | Required for Arduino projects |
idf.py (ESP-IDF) | ESP-IDF compilation and upload | Required for ESP-IDF projects |
pio (PlatformIO) | PlatformIO compilation and upload | Required for PlatformIO projects |
fzf | Interactive fuzzy searching | Recommended |
jq | Update notifications | Recommended |
nvim | Integrated code editing | Optional |
yay -S arduino-cli fzf jq neovim
sudo apt update
sudo apt install arduino-cli fzf jq neovim
sudo dnf install arduino-cli fzf jq neovim
Simply type anode (if installed globally) or ./anodemcu to open the main menu.
Use these single-key triggers for a lightning-fast workflow:
| Key | Action | Platform / Ecosystem |
|---|---|---|
| S | Select/Create Project | All |
| B | Select Board (FQBN / Target) | All (IDF: set-target, PIO: updates platformio.ini) |
| P | Select Port | All |
| C | Compile Project | All (arduino-cli, idf.py build, or pio run) |
| U | Upload Project | All (arduino-cli, idf.py flash, or pio run -t upload) |
| M | Open Serial Monitor | All |
| E | Edit Code (Neovim) | All |
| R | Manage Libraries | Arduino |
| L | List Cores | Arduino |
| A | List All Supported Boards | Arduino |
| I | Install Core | Arduino |
| F | Open configuration menu (idf.py menuconfig) | ESP-IDF |
| N | Clean build files (idf.py clean or pio clean) | ESP-IDF / PlatformIO |
| Z | Show flash size statistics (idf.py size) | ESP-IDF |
| O | Install PlatformIO library (pio pkg install) | PlatformIO |
| H | Show Help | All |
The tool maintains its state automatically, but you can customize defaults by editing your local configuration or the script header:
DEFAULT_FQBN="esp32:esp32:esp32"
DEFAULT_PORT="/dev/ttyACM1"
SKETCH_DIR="$HOME/Arduino"
P) is correctly selected.R) to search and install missing dependencies.uucp or dialout group (on Linux).Distributed under the MIT License. See LICENSE for more information.
Built with ❤️ by Dexter
114 commits
Shell
97.6%
Makefile
2.0%
A cross-platform, interactive TUI tool to manage, compile, and flash microcontroller projects using arduino-cli, PlatformIO, and ESP-IDF.
Shell
108
114 commits
updated Sep 13, 2026
anodemcu is a premium, interactive TUI (Terminal User Interface) designed to simplify microcontroller development. It transforms the command-line tools into a vibrant, intuitive experience, allowing you to manage boards, ports, libraries, and projects across multiple ecosystems.
[!TIP] Perfect for developers who live in the terminal and want a high-speed, "no-nonsense" workflow for compiling and uploading code.
CMakeLists.txt and platformio.ini), it prompts you to select your preferred platform and saves the choice.export.sh script if it's not active in the current shell environment.fzf for near-instant selection of boards, ports, and libraries.If you are on Arch, this is the recommended way:
yay -S anodemcu
Clone the repository and run the automated installer:
git clone https://github.com/abod8639/anodemcu.git
cd anodemcu
./install.sh
This will install the tool to ~/.local/bin/anodemcu and set up a convenient anode alias.
chmod +x anodemcu
# Run locally
./anodemcu
| Dependency | Purpose | Status |
|---|---|---|
bash | Script execution | Required |
arduino-cli | Arduino compilation and upload | Required for Arduino projects |
idf.py (ESP-IDF) | ESP-IDF compilation and upload | Required for ESP-IDF projects |
pio (PlatformIO) | PlatformIO compilation and upload | Required for PlatformIO projects |
fzf | Interactive fuzzy searching | Recommended |
jq | Update notifications | Recommended |
nvim | Integrated code editing | Optional |
yay -S arduino-cli fzf jq neovim
sudo apt update
sudo apt install arduino-cli fzf jq neovim
sudo dnf install arduino-cli fzf jq neovim
Simply type anode (if installed globally) or ./anodemcu to open the main menu.
Use these single-key triggers for a lightning-fast workflow:
| Key | Action | Platform / Ecosystem |
|---|---|---|
| S | Select/Create Project | All |
| B | Select Board (FQBN / Target) | All (IDF: set-target, PIO: updates platformio.ini) |
| P | Select Port | All |
| C | Compile Project | All (arduino-cli, idf.py build, or pio run) |
| U | Upload Project | All (arduino-cli, idf.py flash, or pio run -t upload) |
| M | Open Serial Monitor | All |
| E | Edit Code (Neovim) | All |
| R | Manage Libraries | Arduino |
| L | List Cores | Arduino |
| A | List All Supported Boards | Arduino |
| I | Install Core | Arduino |
| F | Open configuration menu (idf.py menuconfig) | ESP-IDF |
| N | Clean build files (idf.py clean or pio clean) | ESP-IDF / PlatformIO |
| Z | Show flash size statistics (idf.py size) | ESP-IDF |
| O | Install PlatformIO library (pio pkg install) | PlatformIO |
| H | Show Help | All |
The tool maintains its state automatically, but you can customize defaults by editing your local configuration or the script header:
DEFAULT_FQBN="esp32:esp32:esp32"
DEFAULT_PORT="/dev/ttyACM1"
SKETCH_DIR="$HOME/Arduino"
P) is correctly selected.R) to search and install missing dependencies.uucp or dialout group (on Linux).Distributed under the MIT License. See LICENSE for more information.
Built with ❤️ by Dexter
114 commits
Shell
97.6%
Makefile
2.0%