This is an application created by default by the core distribution. It is a simple shell interpreter, and is frequently used by developers writing tcl scripts.
A user of tclsh (or of wish, the interactive tcl shell with Tk automatically loaded), should be aware that there are a few differences between typing tcl statements to the shell in interactive mode and typing tcl commands into a file and then executing it.
interactive: unknown will automatically pass command to exec . command file: the coder must specify exec before any non-tcl commands
interactive: stdout appears to the screen when you type commands command file: the coder must specify puts to get the output from a command to display to the screen
I'm unsure what is meant by "abbreviations" above. Yet another symptomatic difference of interactive operation is that, when interactive, the interpreter (by way of unknown) takes otherwise-unknown command names as abbreviations. Thus in interactive mode it's possible to write
set fp [op $myfile]
although a scripted application would require open be written out in full.
Category Application, a part of the Tcl package.