Terminal window distinguishing types of input and ouput

I wish I had a terminal program that distinguished (i.e. with different colors) standard output, standard error, standard input, command input, and the command prompt. Does such a program exist?

I wish I had a terminal program that distinguished (i.e. with different colors) standard output, standard error, standard input, command input, and the command prompt. It would be obvious when I wrote a command that is waiting for user input so that I don't wait for my program to finish when it is waiting for me to enter input (this usually happens with shell scripting when I forget to provide the standard input to a long list of piped commands).