A console application is considered to be terminal independent when it uses at least one layer of abstraction to interface with the user's terminal or terminal emulator.

Most unix applications use the curses/ncurses libraries
as the abstraction, these libraries use the information stored in the termcap/terminfo databases in order to support hundreds different terminal types.
However, recently, many projects have switched to using
s-lang as their support library, although no one seems to
know why.