# TUIs

Treat TUIs as command-line programs with a full-screen interaction model. Read
[cli.md](cli.md) first for command ergonomics, config, versioning, stdout/stderr,
and non-interactive behaviour.

## Posture

- Use a mature TUI framework when the interface has state, layout, focus,
  keymaps, or async work.
- Keep the CLI surface consistent with the rest of the project: flags for
  startup/config, command context for cancellation, and explicit output modes for
  non-interactive use.
- Do not copy another tool's task-runner examples blindly; translate useful
  commands into the project's chosen task runner.
- Add snapshot/golden update tasks only when the project actually has snapshot or
  golden tests.
- Treat terminal compatibility and performance as product concerns, not polish to
  add at the end.

## Go path

For Go TUIs, read [golang/index.md](golang/index.md) first and follow its TUI
chain. That route intentionally loads Go baseline, CLI, mise, testing, and Charm
context before `golang/tui.md`.
