Nu is a maintained, modernized continuation of the Mu editor — a simple code editor for beginner programmers, shaped by extensive feedback from teachers and learners. It is also a pleasant "no frills" editor for anyone who wants one. Most importantly: have fun!
The original Mu was archived by its maintainers and is no longer developed. Nu exists so that beginners — and the wider community — can keep using the editor safely into the future. The goal is simple: maintain and modernize.
Nu is a friendly fork. It builds directly on the work of Nicholas Tollervey and
the many Mu contributors (see AUTHORS.md) and remains free
software under the GPLv3.
Like Mu, Nu is a modal editor written in Python and built on the Qt toolkit: a small editor whose behaviour changes depending on the selected mode. The text area is a Scintilla-based widget with syntax highlighting, and there is a built-in Jupyter REPL and a data plotter. Nu runs on Windows, macOS, Linux and Raspberry Pi.
Nu currently ships these modes:
- Python 3 — write and run desktop Python, with a built-in REPL and plotter.
- Pygame Zero — make games the beginner-friendly way.
- CircuitPython — work with Adafruit CircuitPython boards via the
CIRCUITPYdrive and serial REPL. - Debugger — a visual debugger for stepping through Python code.
To keep Nu nimble and easy to maintain, the more niche, hardware-specific modes inherited from upstream Mu (micro:bit, ESP, Pyboard, Lego, Pico, Snek and the Flask/web deploy mode) — along with their vendored, unmaintained device tooling — have been removed.
Nu is under active modernization. It now runs on PyQt6 and Python 3.11+
(verified through 3.14), with development managed by
uv. The remaining work — uv-driven user
environments and consolidated Briefcase
installers — is tracked in TODO.md. Guidance for working in this
repository lives in CLAUDE.md.
Nu uses uv for development. With uv installed:
git clone https://github.com/kovirlabs/nu.git
cd nu
uv sync # downloads a managed CPython and the pinned deps
uv run python -m mu # launch Nu
Run the test suite (add QT_QPA_PLATFORM=offscreen to run the Qt tests
headlessly, without a display):
uv run pytest
Lint and format with ruff (config lives in
pyproject.toml):
uv run --no-sync python -m ruff check # lint
uv run --no-sync python -m ruff format # reformat in place
The developer documentation lives in docs/, is built with
MkDocs and is published with GitHub Pages at
https://kovirlabs.github.io/nu/. Build it locally with make docs (or
make docs-serve for a live preview).
Note that much of this documentation is inherited from upstream Mu and predates this fork — it is being modernized incrementally.
We want this to be a friendly place. Contributors and collaborators are expected
to follow the Code of Conduct in CODE_OF_CONDUCT.md.
Nu is free software, licensed under the GNU General Public License v3 (see
LICENSE). It derives from Mu, Copyright (c) Nicholas H. Tollervey
and contributors.