yoctui-utils 0.1.322

Shared utility functions for Yoctui
Documentation

Yoctui

A terminal workspace for Yocto developers: build images, inspect what goes into them, edit sources, and debug bring-up without losing your build context. A persistent daemon keeps builds and development terminals available when you close the UI and reconnect later.

Features

  • Build and diagnose: dashboard and insights, live BitBake tasks, logs, warnings, errors, and saved build history.
  • Develop: browse layers and recipes, use devtool and devshell, edit text with syntax highlighting, and open GitUI in persistent terminal sessions.
  • Inspect images: artifacts, rootfs package composition with a pie chart and list, navigable files with permissions and ownership, systemd services, D-Bus, and udev rules.
  • Bring up hardware: organize project documents and requirements, and record progress through bootloader, kernel, device tree, drivers, and rootfs.
  • Debug: kernel and U-Boot menuconfig, DTS/DTB tools, QEMU boot, SSH access, and remote kernel debugging with GDB.

Available actions depend on your Yocto build, generated artifacts, and installed tools. See the screenshots and workflows for a closer look.

Install

Linux, an 80×24+ terminal, Python 3, a C compiler/linker, and stable Rust/Cargo are required. Install the prerequisites on Ubuntu/Debian (use equivalent packages on other Linux distributions):

sudo apt update
sudo apt install -y build-essential pkg-config curl ca-certificates python3 git

Install Rust and Cargo using rustup, then make Cargo available in the current shell:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"
rustc --version
cargo --version

Install the official Yoctui release:

cargo install yoctui --locked -j 2
yoctui --version

For source builds, follow Build from source. QEMU, GDB, GitUI, and document viewers are optional tools needed for their respective workflows. Live builds also need your Yocto release's host dependencies; see workspace setup.

Quickstart

From an existing Poky checkout, initialize a build directory (adjust the paths):

export POKY_DIR="$HOME/src/poky"
export BUILDDIR="$POKY_DIR/build-yoctui"
source "$POKY_DIR/oe-init-build-env" "$BUILDDIR"
yoctui daemon status

Check conf/local.conf for your desired MACHINE, such as qemux86-64. See workspace setup for Yocto host dependencies and other source layouts.

If no daemon is running, or it already uses this build:

yoctui daemon start
yoctui --backend bridge --build-dir "$BUILDDIR"

To reconnect to an already-running daemon:

yoctui attach

To build a Poky image inside Yoctui:

  1. Press F8 to open Images, then 1 for the Artifacts tab.
  2. Press i to choose an image, select core-image-minimal, and press Enter.
  3. Press b to review the build. Check the target, then press Enter to confirm and start building; Esc cancels the review.
  4. Follow progress in Tasks (F2), build output in Logs (F5), and failures in Errors.

Use Tab to focus the workspace if the Navigator has focus. These i and b shortcuts belong to Images; editors and terminal sessions have their own keys. Alt+b opens additional build options, F1 opens Help, and F12 opens the menu. Opening Yoctui does not start a build; exiting leaves daemon-owned work running.

Documentation

User guide · Keyboard shortcuts · Screenshots · All documentation

Build from source · Profiling and Flamegraph · Issues · Third-party notices

Contributing

Contributions are welcome. Share a bug report, suggest a workflow improvement, help with documentation, or contribute tests and code. Feedback from different boards and Yocto releases helps improve Yoctui for everyone.

Open an issue with reproduction steps and your Yocto/build environment, or send a focused pull request. For larger changes, please discuss the approach in an issue first. The development guide covers source builds and verification.

License

Yoctui is licensed under the MIT License. Copyright © 2026 Roy Cohen. Third-party components retain their own licenses; see third-party notices.