etui — Embedded Terminal IDE
etui (Embedded TUI) is an open source, terminal-based IDE for embedded firmware development, built by 32bitmicro LLC with Python and the Textual framework. It brings the editor, console, build tooling, debugger, and hardware interfaces of an embedded workflow into a single keyboard-driven terminal user interface — no desktop GUI required, so it runs equally well over SSH on a bench machine or in a local terminal.
The project is open source under Apache-2.0 and hosted at https://github.com/EmbeddedTUI/etui.
Why a TUI for embedded
Embedded firmware development lives close to the terminal: serial consoles,
cmake/ninja builds, gdb/lldb sessions, debug probes, and git. etui
unifies these into one cohesive interface that stays fast, scriptable, and
remotable, instead of stitching together separate windows and tools.
Architecture
etui is built around a plugin-driven tab model. A small core hosts the workspace, command bus, console, and settings, while individual capabilities ship as plugins that contribute tabs and commands:
- Textual core — the editor, file browser, console, settings, and plugin manager are Textual widgets driven entirely from the keyboard.
- xonsh-backed console — an integrated Python/shell console for running builds, flashing, and ad-hoc tooling without leaving the IDE.
- Plugin tabs — each subsystem is a separately versioned plugin installed as a workspace member.
Bundled plugins
| Plugin | Purpose |
|---|---|
etui-cmake |
CMake/Ninja project configuration and build |
etui-workflow |
Task and build workflow orchestration |
etui-serial |
Serial console / UART monitor |
etui-probe |
Debug probe interface |
etui-lldb |
LLDB debugging integration |
etui-git |
Git repository operations |
etui-github |
GitHub integration |
etui-tools |
Shared developer tooling |
Third-party plugins (for example etui-mqtt, etui-email) live in their own
repositories and are installed separately.
Tooling
- Language — Python, dependency-managed with PDM (
pyproject.toml,pdm.lock); plugins are PDM workspace members. - Core dependencies —
textual,xonsh,pygments,pyte,pyyaml. - Packaging — standalone single-binary releases via PyInstaller
(
etui.spec), built bybuild-release-gh.sh. - Tests — pytest suite covering the bus, console, workspace, settings, and plugin manager.
Screenshots
















Releases
etui ships tagged releases with standalone binaries on GitHub.
| Version | Date | Notes |
|---|---|---|
| v0.5.1 | 2026-06-22 | Latest — updated release screenshots |
| v0.5.0 | 2026-06-21 | |
| v0.4.0 | 2026-06-20 | |
| v0.3.0 | 2026-06-19 | |
| v0.0.1 | 2026-06-11 | First tagged release |