Flashing a TeHyBug over USB used to take two programs: NodeMCU PyFlasher to write the firmware and CoolTerm to watch what the board says afterwards — and the two would fight over the serial port. BugZapper is a small open-source tool that does both in one window, on Windows, macOS and Linux, with nothing to install beyond Python. It is built into the TeHyBug firmware repository and works with any ESP8266 / ESP8285 board.
⚡ Flasher and serial monitor in one window
- Pick and flash: the serial port is found for you, the firmware files in a
firmware/folder are listed, choose baud, flash mode and an optional full erase — then press Flash. - Built-in serial monitor: colour output, baud switching on the fly, send to the board, save the log or write it live to a file.
- No “port busy”: after a flash the monitor reconnects by itself and shows the boot log — exactly the moment you want to see it.

📦 Nothing to install
- A pure-Python esptool and pyserial are bundled — all you need is
python3, plus Tk for the window (it comes with the python.org installers; on Homebrew or Linux:brew install python-tk/apt install python3-tk). - If an esptool is already installed on your computer, BugZapper uses that one — so current ESP32 boards work as well.
bugzapper.baton Windows,bugzapper.shon macOS and Linux — the same options everywhere, includingCOMxports.
⌨️ Or from the terminal
Prefer a one-liner? The CLI does the same flashing and works with both esptool 4.x and 5.x:
python3 flash.py # flash the first ./firmware/*.bin to the auto-found port
python3 flash.py -f build/app.bin -e # a specific file, erase all flash first
python3 flash.py -p COM5 -b 460800 # explicit port and baud
python3 flash.py -h # all options
🧪 NodeMCU Lua boards too
Still running NodeMCU Lua firmware — as the first-generation TeHyBug did? The second tab uploads init.lua and data files into the board’s filesystem (compile, run or restart afterwards), lists what is on it, or formats it. The uploader is bundled as well.

🐞 Part of the TeHyBug firmware
The firmware repository ships BugZapper preconfigured: clone it with submodules and ./bugzapper.sh opens the window with the TeHyBug binaries preselected, ./flash.sh is the terminal twin.
git clone --recurse-submodules https://github.com/gumslone/tehybug-universal
cd tehybug-universal
./bugzapper.sh # the window
./flash.sh # or the one-liner
Get it
BugZapper is free and open source (MIT): github.com/gumslone/bugzapper — download or clone it, run bugzapper.sh or bugzapper.bat, done. It also drops into any other ESP project: point it at a folder of .bin files.
For a TeHyBug that already runs, updating over the air from the web interface stays the easiest way. BugZapper is for the first flash, a board that will not start any more, or whenever you want to watch the serial log.
Questions? Tap the AI assistant on tehybug.com or check the FAQ. Turning ideas into smart devices.

Leave a Reply