Personally, I feel that if it uses control characters to update the screen in previous positions, altering the scroll buffer, moving beyond where the cursor is and redrawing the screen, then it's a TUI.
CLI programs only output plain text in a stream, using just control characters for coloring and formatting, and if they do any re-drawing it's only for the current line (eg. progressbars and so).
So.. even something like less is a TUI program.. but things like more or sed would be CLI programs.