tui.md

TUIs

Treat TUIs as command-line programs with a full-screen interaction model. Read 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 first and follow its TUI chain. That route intentionally loads Go baseline, CLI, mise, testing, and Charm context before golang/tui.md.