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 dependenciestextual, xonsh, pygments, pyte, pyyaml.
  • Packaging — standalone single-binary releases via PyInstaller (etui.spec), built by build-release-gh.sh.
  • Tests — pytest suite covering the bus, console, workspace, settings, and plugin manager.

Screenshots

etui — About

etui — Integrated console

etui — File browser

etui — Help

etui — Settings

etui — Theming

etui — Plugin manager

etui — CMake plugin

etui — Workflow plugin

etui — Git plugin

etui — GitHub plugin

etui — LLDB plugin

etui — Debug probe plugin

etui — Serial plugin

etui — Tools plugin

etui — Virtualenv plugin

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

View on GitHub · Releases

Copyright © 32bitmicro, LLC 2024-2026