Teaches coding agents how to build TUIs with TamboUI correctly: API-level selection, render-thread discipline, display-width safety, CSS-aware element authoring, and JFR conventions.
94
93%
Does it follow best practices?
Impact
97%
2.77xAverage score across 3 eval scenarios
Passed
No known issues
TamboUI exposes four API levels. Picking the right one up front is much cheaper than rewriting later.
ToolkitApp (or ToolkitRunner for more control) and the static-import DSL from dev.tamboui.toolkit.Toolkit.*panel, row, column, text, list, table, gauge, etc. as factory methods; chain styling with .bold(), .cyan(), .rounded()TuiRunner when you need a custom event loop, animation ticks at a specific cadence, or to render widgets directly without going through Toolkit elements(EventHandler, Renderer) — the handler returns true to request a redraw and false otherwise; do not redraw on every eventTerminal + Backend direct usage for custom backends, game loops, or learning the rendering modelInlineApp (declarative) or InlineToolkitRunner / InlineDisplay (lower-level)println() scroll output above it — do not use full-screen TuiRunner for this pattern, it will take over the terminalTuiRunner callback, and immediate Frame.buffer() writes work alongside element rendering — but only mix when you have a real reason