← ClaudeAtlas

tui-uilisted

Design web-like user interfaces in the terminal and inside tmux with a cell-grid Canvas, CSS-like box model, flexbox/grid layout, and 17 reusable widgets such as Panel, Table, Card, ProgressBar, Meter, Tabs, Tree, Badge, Banner, and a braille line chart. Use when an agent needs a dashboard, panel, table, status page, TUI layout, tmux dashboard, screenshot-driven CLI/TUI replica, ANSI frame, truecolor render, pyte PNG screenshot smoke test, wide-character alignment, or a new terminal widget.
dwgx/SmartCLI · ★ 2 · Web & Frontend · score 71
Install: claude install-skill dwgx/SmartCLI
# tui-ui Lay out a terminal screen the way you lay out a web page: nested boxes with margin, border, and padding; rows and columns that flex with `fr` units; and drop-in widgets (panels, tables, cards, meters, tabs, trees). You compose a tree of renderables, and the engine resolves sizes, composites cell grids, and serializes **once** to a tmux-safe ANSI frame. Everything is display-cell accurate, so CJK, emoji, and box-drawing never desync your columns. Pure Python **stdlib** (optional `pyfiglet` for the Banner, optional `wcwidth` for an authoritative width — a stdlib fallback covers the same edge cases). Output is a plain string you can `print`, pipe, wrap in a registered fx `Effect` (the fx play loop drives registered effects only — it does not accept raw ANSI frames), or render to PNG with the SmartCLI pyte harness. ## When to use - Building a status page / dashboard / control panel that should look designed, not dumped. - You need boxes, tables, or columns that **line up** — especially with wide glyphs. - You want web mental models (box model, flexbox rows, a grid, cards) in a TUI. - Adding a new reusable terminal widget to a shared catalog. - Do NOT use for full-screen *interactive* apps with input loops — that is drive-tui's job. tui-ui produces *frames*; something else owns the terminal. ## Setup Run from the skill directory `skills/tui-ui` as a package: ``` python -m ui widgets # list widgets (--json for machine-readable) python