Hello, [yoe]

2026-05-02  ·  announcement

After years of maintaining and shipping products with the Yoe Distribution, we kept running into the same walls — most of them not technical, but cultural to the way embedded Linux has always been built. We started over, took the lessons that mattered, and wrote the tool we always wanted.

What we kept

  • Machine abstraction and image composition. Yocto got a lot right here.
  • Module composition. Pulling units from GitHub URLs scales to vendor BSPs.
  • Tracking upstream closely. The cloud has been doing this for a decade.

What we dropped

  • Cross-compilation as the default. Modern ARM and RISC-V boards build natively at full speed. Cloud CI runs arm64 cheaper than ever. QEMU user-mode emulation covers the rest.
  • The SDK boundary. The same Go binary builds the kernel, the rootfs, and the application. No frozen sysroot, no drift, no “works on my SDK version.”
  • Reinventing dependency resolution. Cargo, Go modules, pip, and npm already solved this. [yoe] composes with them instead of replacing them.
  • Generated shell scripts. When something fails, you should be reading the code you wrote — not a stack trace ten layers deep in machine output.

What we’re betting on

  • AI as a first-class interface. Starlark units, queryable graphs, structured logs. An assistant that understands the system can take the cognitive load of “which knob, and why” off the developer.
  • One tool, three interfaces. AI conversation, interactive TUI, traditional CLI — same engine, same commands. Use whichever fits the moment.
  • Functional equivalence over bit-for-bit reproducibility. Hermetic builds and content-addressed input hashing without spending 20 years patching upstream.

[yoe] is pre-1.0 and moving fast. Try it, break it, tell us where it broke.

— Cliff Brake