1# TUIs
2
3Treat TUIs as command-line programs with a full-screen interaction model. Read
4[cli.md](cli.md) first for command ergonomics, config, versioning, stdout/stderr,
5and non-interactive behaviour.
6
7## Posture
8
9- Use a mature TUI framework when the interface has state, layout, focus,
10 keymaps, or async work.
11- Keep the CLI surface consistent with the rest of the project: flags for
12 startup/config, command context for cancellation, and explicit output modes for
13 non-interactive use.
14- Do not copy another tool's task-runner examples blindly; translate useful
15 commands into the project's chosen task runner.
16- Add snapshot/golden update tasks only when the project actually has snapshot or
17 golden tests.
18- Treat terminal compatibility and performance as product concerns, not polish to
19 add at the end.
20
21## Go path
22
23For Go TUIs, read [golang/index.md](golang/index.md) first and follow its TUI
24chain. That route intentionally loads Go baseline, CLI, mise, testing, and Charm
25context before `golang/tui.md`.