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
A TamboUI app puts the terminal into raw mode, hides the cursor, and (usually) switches to the alternate screen. If the process exits without restoring those, the user's terminal is left broken — no echo, no cursor, no normal scrollback. Why try-with-resources matters here: the close path is the only place that restoration is guaranteed to run, including on uncaught exceptions.
TuiRunner, Backend, Terminal, InlineDisplay, InlineTuiRunner — all AutoCloseable, all must be in a try-with-resources blockclose() into a clear lifecycle (e.g., a CLI shutdown hook); the default is the local try-with-resourcesenableRawMode() and enterAlternateScreen() inside the try body — close handles the restorationIOException leaves the terminal half-configured (raw mode on, alt screen on, cursor hidden) — even if your code returns "successfully"catch (IOException ignored)TuiConfig/ToolkitConfig) is not shut down — the caller owns its lifecycleInlineTuiRunner instances, inject one and shut it down yourself; otherwise the first runner to close will tear down a scheduler other runners are still usingRenderErrorHandler (and RenderErrorHandlers.suppress()) decide what to display when render/event callbacks throw — they do not own terminal restorationclose() still has to run; the error handler runs inside the loop, the close runs after it exits