// the find
mu-editor/mu
A small, simple editor for beginner Python programmers. Written in Python and Qt5.
Mu is a beginner-oriented Python editor built with Qt5, designed specifically for teaching. It supports a wide range of modes — standard Python, MicroPython on micro:bit and Raspberry Pi Pico, CircuitPython, Pygame Zero, ESP, Flask web dev — so a student can go from blinking an LED to writing a web app without switching tools. The README leads with 'THIS PROJECT IS NO LONGER MAINTAINED', which is the most important thing to know about it.
The modal design is genuinely smart for education: each mode strips the UI down to only what's relevant, so a micro:bit beginner doesn't see Flask options and vice versa. The built-in debugger (step in/over/out, breakpoints) is unusually complete for a beginner tool — most skip it entirely. Internationalization coverage is solid for its audience: 12+ locales including zh_CN, pt_BR, uk_UA, and ja, with .po/.mo pairs already compiled. The hardware support breadth is impressive: micro:bit, CircuitPython, ESP32/8266, Raspberry Pi Pico, LEGO, and pyboard all have dedicated modes with device-specific API completion.
Abandoned. The README says so explicitly, and the last meaningful activity predates any serious consideration of Python 3.12+ compatibility. Qt5 is also EOL, so anyone packaging this today is fighting two dead dependencies at once. There's no LSP or tree-sitter integration — autocomplete is hand-maintained API lists per mode (see mu/modes/api/), which means they'll drift from real library versions with no automated way to catch it. The web mode (Flask) feels bolted on — a beginner's Flask app runs inside Mu's own Flask instance via mu/modes/web.py rather than in a proper virtualenv, which teaches habits that break immediately in any real environment.