Skip to content
Back to projects

A local release, not a website: v0.2.0 installs with cargo build --release and runs on a Linux desktop. The source is private for now.

03

Personal project · multi-agent lab written in Rust

Eden Hub

A desktop app and a terminal app that run a team of AI coding agents on your own machine: every builder works, critics review the merged output, and one leader answers you in a single clean reply. No hub server, no cloud — it just drives the CLIs you already have. About 6,000 lines of Rust, two binaries, 46 tests and one design system.

Role

Designer & Systems Developer

Stack

  • Rust · ~6,000 LOC, two binaries
  • eframe / egui · Desktop GUI, glow + accesskit
  • ratatui / crossterm · tmux-like terminal UI
  • Threads + mpsc · Parallel fan-out, live streaming
  • GitHub Actions · Both suites, clippy -D warnings
●localhost · self-hosted
2026
Eden Hub multi-agent orchestration diagram

AI's role in this project AI-assisted

The audits and fix prompts were written for an agent to execute, and it did — but the architecture, the design tokens and every merge decision are mine.

High-level architecture

YOU
EDEN HUB
BUILDERS
CRITICS
LEADER
AGENT CLIS

03 · Eden Hub · © 2026

THE PROBLEM

  • A single agent gives a single opinion, and running several by hand means reading five half-answers and merging them yourself.
  • Every ready-made hub wanted a server, an account or a cloud key — I wanted the models already installed on my machine.

THE APPROACH

  • Every builder runs, critics review the merged output, then one leader writes the answer. The leader is configurable; if it fails, the best builder answers and is honestly labeled.
  • Both surfaces share one config file. The GUI keeps the timeline readable by collapsing team work into expandable cards; the TUI adds tmux-style windows and a one-key jump into the live agent terminal.

THE ARCHITECTURE

  • Composer → fan-out scheduler → agent CLIs (opencode / 9router / cmd) → shared output buffer → critics → leader → chat timeline.
  • Children are polled every 60 ms with stdout/stderr drained on detached reader threads, so Stop returns immediately even when a grandchild still holds the pipe open.

THE TECHNOLOGY

  • Rust
  • eframe / egui (glow, accesskit)
  • ratatui / crossterm
  • Threads + mpsc channels
  • GitHub Actions

THE CHALLENGES

  • Killing a tree of spawned CLIs without hanging on inherited pipes — the kill path deliberately does not join its readers.
  • A first audit found that about 90% of the GUI never painted, because every screen laid out as one infinite horizontal row; the fix was one line, and a headless layout probe now guards it.

THE RESULT

  • v0.2.0 ships both apps with 46 passing tests, clippy-clean CI and a documented warm-dark design system whose tokens pass WCAG AA.
  • It runs daily on my own machine: a bench per project, session history that survives restarts, and ten builders answering as one voice.