James Harton James Harton

April 2026: Chocolate Eggs and Terminal UIs

Community members build a full TUI dashboard and debug a cobot driver on real hardware while I eat hot cross buns.

New month, new format. Progress updates are moving to a monthly cadence — fortnightly posts were either light or padded, and I'd rather spend the time writing code. Weekly updates served their purpose when everything was new and changing fast. Monthly gives things room to cook.

Also I took Easter off, ate my bodyweight in hot cross buns and chocolate, and have very little personal progress to report. So let's talk about the people who were actually productive.

bb_tui: A Terminal Dashboard for Your Robot

Mauricio Cassola has taken the bb_tui proposal and built a working implementation at mcass19/bb_tui. In about a week. From scratch. Including writing his own terminal UI library.

The dashboard gives you near feature-parity with bb_liveview but entirely in the terminal:

  • Safety controls — arm, disarm, force disarm with confirmation dialogs
  • Joint control — position table with visual range bars, keyboard-driven adjustment in 1% or 10% steps
  • Event stream — scrollable, colour-coded, pausable, with detail popups
  • Commands panel — shows available robot commands with Ready/Blocked status
  • Parameters — live values grouped by path with inline editing
  • Remote attach — run the TUI locally while pulling data from a remote BEAM node, or SSH into the robot and launch it there

That last point matters. The original proposal flagged "don't take over the terminal on a released system" as a key concern — Mauricio solved it with distribution support baked in from the start. You can run mix bb.tui --robot MyApp.Robot --node [email protected] and get a full dashboard without touching the robot's terminal.

Under the hood it's built on ex_ratatui, Mauricio's own Elixir bindings to the Rust ratatui ecosystem via Rustler NIFs. The proposal originally suggested Ratatouille, but as Mauricio pointed out in the PR discussion, Ratatouille has been unmaintained for years while ratatui is thriving. Good call.

The whole thing ships with a simulated WidowX-200 for development, a headless test suite, and vim-style keybindings because of course it does. It's ready for review and I'm looking forward to digging into it.

bb_ufactory: Now With Real Hardware

Holden Oullette posted a video update showing bb_ufactory running against an actual xArm unit:

The latest commit ("Final library debugging with local xArm unit") confirms the driver has graduated from "compiles and looks right" to "tested on real metal". This is the first community-built Beam Bots driver to reach that milestone — a uFactory xArm being commanded by Elixir over TCP, with the full Controller/Actuator/Sensor architecture, 100Hz ETS control loop, force-torque sensing, and safety integration all working on real hardware.

Community Momentum

It's worth stepping back for a second. Two people I've never met in person are independently building substantial additions to the framework — a complete terminal dashboard and a tested industrial cobot driver. Neither was assigned. Neither was paid. Both just saw something they wanted to build and built it.

That's the whole point of open source and it's genuinely exciting to watch.

bb_jido Proposal Accepted

Proposal 0009: bb_jido was accepted on March 28th. This integrates the Jido autonomous agent framework with Beam Bots, enabling robots to make goal-directed decisions rather than just executing pre-defined sequences.

Where bb_reactor answers "how do I execute this workflow?", Jido agents answer "what should I do next to achieve this goal?" The bb_jido repo has appeared in the beam-bots org with its first Dependabot PRs merged — early days, but the plumbing is in place.

Dependency Gardening

Dependabot kept the lights on while I was eating chocolate:

PackageFromToNotes
spark2.4.12.6.1Builder API for Sections/Entities, persister sorting
igniter0.7.60.7.7Fix for children = [...] ++ expr in add_new_child
phoenix_live_view1.1.271.1.28Race condition fix for nested LiveView removal
bandit1.10.31.10.4
git_ops2.9.22.9.3

Bumped across all ecosystem packages. Nothing breaking. The garden stays tidy.

What's Next

More community review — Mauricio's TUI implementation needs a proper look. On the framework side, the Robotis sync_write_raw PR is still on the list, and I need to start sketching out what bb_jido looks like in practice.

If you're building something with Beam Bots — or just curious — come say hello on Discord.