abod8639/anodemcu

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

See the code

See what people are saying (1)

SourceMessageScoreDate

anodemcu: A CLi tool to compile, flash, and monitor ESP32, PlatformIO, and Arduino projects (r/commandline)

[anodemcu](https://github.com/abod8639/anodemcu) is a terminal-based interface written in Bash that wraps \`arduino-cli\`, \`PlatformIO Core\`, and \`ESP-IDF\` workflows into interactive \`fzf\` menus. \### Technical details: \* \*\*Environment handling:\*\* Sources target toolchain paths…

0

Sep 19, 2026

README

Anode MCU Manager

Anode MCU Manager Preview

AUR Package Bash License Release Stars

ESP-IDF PlatformIO Arduino


Esp-idf     PlatformIO     Arduino

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.

Features

  • Multi-Platform Support: Seamlessly work with Arduino CLI, ESP-IDF, and PlatformIO projects.
  • Auto-Detection & Ambiguity Resolution: Automatically detects the project type based on files. If multiple configurations exist (e.g. both CMakeLists.txt and platformio.ini), it prompts you to select your preferred platform and saves the choice.
  • ESP-IDF Auto-Sourcing: Automatically locates and sources the ESP-IDF export.sh script if it's not active in the current shell environment.
  • Rich Terminal UI: Vibrant color-coded interface with a live dashboard header.
  • Fuzzy Search Integration: Powered by fzf for near-instant selection of boards, ports, and libraries.
  • Smart Project Management: Create, select, and edit projects (Neovim support) from a single menu, starting automatically in the current directory if it is a valid project.
  • Safe Uploads: Automatic project backups before every upload (keeps the last 5 versions).
  • Integrated Monitor: Quick access to the serial monitor for real-time debugging.
  • Operation Logging: Complete history of your actions with automatic log rotation.
  • Native Arch Linux Support: Available directly via the AUR.

Installation

Arch Linux (AUR)

If you are on Arch, this is the recommended way:

yay -S anodemcu

Global Installation (Any Linux/macOS)

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.

Manual Install

chmod +x anodemcu
# Run locally
./anodemcu

Prerequisites

DependencyPurposeStatus
bashScript executionRequired
arduino-cliArduino compilation and uploadRequired for Arduino projects
idf.py (ESP-IDF)ESP-IDF compilation and uploadRequired for ESP-IDF projects
pio (PlatformIO)PlatformIO compilation and uploadRequired for PlatformIO projects
fzfInteractive fuzzy searchingRecommended
jqUpdate notificationsRecommended
nvimIntegrated code editingOptional

Arch Linux

yay -S arduino-cli fzf jq neovim

Debian/Ubuntu

sudo apt update
sudo apt install arduino-cli fzf jq neovim

Fedora

sudo dnf install arduino-cli fzf jq neovim

How to Use

Simply type anode (if installed globally) or ./anodemcu to open the main menu.

Keyboard Shortcuts & Platform-Specific Actions

Use these single-key triggers for a lightning-fast workflow:

KeyActionPlatform / Ecosystem
SSelect/Create ProjectAll
BSelect Board (FQBN / Target)All (IDF: set-target, PIO: updates platformio.ini)
PSelect PortAll
CCompile ProjectAll (arduino-cli, idf.py build, or pio run)
UUpload ProjectAll (arduino-cli, idf.py flash, or pio run -t upload)
MOpen Serial MonitorAll
EEdit Code (Neovim)All
RManage LibrariesArduino
LList CoresArduino
AList All Supported BoardsArduino
IInstall CoreArduino
FOpen configuration menu (idf.py menuconfig)ESP-IDF
NClean build files (idf.py clean or pio clean)ESP-IDF / PlatformIO
ZShow flash size statistics (idf.py size)ESP-IDF
OInstall PlatformIO library (pio pkg install)PlatformIO
HShow HelpAll

Configuration

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"

Troubleshooting

  • Upload Failed? Check your USB cable and ensure the port (P) is correctly selected.
  • Library Missing? Use the Library Manager (R) to search and install missing dependencies.
  • Permission Denied? Ensure your user is in the uucp or dialout group (on Linux).

📜 License & Acknowledgments

Distributed under the MIT License. See LICENSE for more information.

Built with ❤️ by Dexter

Contributors

abod8639

114 commits

abod8639/anodemcu

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

See the code

See what people are saying (1)

SourceMessageScoreDate

anodemcu: A CLi tool to compile, flash, and monitor ESP32, PlatformIO, and Arduino projects (r/commandline)

[anodemcu](https://github.com/abod8639/anodemcu) is a terminal-based interface written in Bash that wraps \`arduino-cli\`, \`PlatformIO Core\`, and \`ESP-IDF\` workflows into interactive \`fzf\` menus. \### Technical details: \* \*\*Environment handling:\*\* Sources target toolchain paths…

0

Sep 19, 2026

README

Anode MCU Manager

Anode MCU Manager Preview

AUR Package Bash License Release Stars

ESP-IDF PlatformIO Arduino


Esp-idf     PlatformIO     Arduino

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.

Features

  • Multi-Platform Support: Seamlessly work with Arduino CLI, ESP-IDF, and PlatformIO projects.
  • Auto-Detection & Ambiguity Resolution: Automatically detects the project type based on files. If multiple configurations exist (e.g. both CMakeLists.txt and platformio.ini), it prompts you to select your preferred platform and saves the choice.
  • ESP-IDF Auto-Sourcing: Automatically locates and sources the ESP-IDF export.sh script if it's not active in the current shell environment.
  • Rich Terminal UI: Vibrant color-coded interface with a live dashboard header.
  • Fuzzy Search Integration: Powered by fzf for near-instant selection of boards, ports, and libraries.
  • Smart Project Management: Create, select, and edit projects (Neovim support) from a single menu, starting automatically in the current directory if it is a valid project.
  • Safe Uploads: Automatic project backups before every upload (keeps the last 5 versions).
  • Integrated Monitor: Quick access to the serial monitor for real-time debugging.
  • Operation Logging: Complete history of your actions with automatic log rotation.
  • Native Arch Linux Support: Available directly via the AUR.

Installation

Arch Linux (AUR)

If you are on Arch, this is the recommended way:

yay -S anodemcu

Global Installation (Any Linux/macOS)

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.

Manual Install

chmod +x anodemcu
# Run locally
./anodemcu

Prerequisites

DependencyPurposeStatus
bashScript executionRequired
arduino-cliArduino compilation and uploadRequired for Arduino projects
idf.py (ESP-IDF)ESP-IDF compilation and uploadRequired for ESP-IDF projects
pio (PlatformIO)PlatformIO compilation and uploadRequired for PlatformIO projects
fzfInteractive fuzzy searchingRecommended
jqUpdate notificationsRecommended
nvimIntegrated code editingOptional

Arch Linux

yay -S arduino-cli fzf jq neovim

Debian/Ubuntu

sudo apt update
sudo apt install arduino-cli fzf jq neovim

Fedora

sudo dnf install arduino-cli fzf jq neovim

How to Use

Simply type anode (if installed globally) or ./anodemcu to open the main menu.

Keyboard Shortcuts & Platform-Specific Actions

Use these single-key triggers for a lightning-fast workflow:

KeyActionPlatform / Ecosystem
SSelect/Create ProjectAll
BSelect Board (FQBN / Target)All (IDF: set-target, PIO: updates platformio.ini)
PSelect PortAll
CCompile ProjectAll (arduino-cli, idf.py build, or pio run)
UUpload ProjectAll (arduino-cli, idf.py flash, or pio run -t upload)
MOpen Serial MonitorAll
EEdit Code (Neovim)All
RManage LibrariesArduino
LList CoresArduino
AList All Supported BoardsArduino
IInstall CoreArduino
FOpen configuration menu (idf.py menuconfig)ESP-IDF
NClean build files (idf.py clean or pio clean)ESP-IDF / PlatformIO
ZShow flash size statistics (idf.py size)ESP-IDF
OInstall PlatformIO library (pio pkg install)PlatformIO
HShow HelpAll

Configuration

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"

Troubleshooting

  • Upload Failed? Check your USB cable and ensure the port (P) is correctly selected.
  • Library Missing? Use the Library Manager (R) to search and install missing dependencies.
  • Permission Denied? Ensure your user is in the uucp or dialout group (on Linux).

📜 License & Acknowledgments

Distributed under the MIT License. See LICENSE for more information.

Built with ❤️ by Dexter

Contributors

abod8639

114 commits

Languages

Shell

97.6%

Makefile

2.0%