rlwrap [L1 ] is a GNU readline wrapper. it adds readline editing and command history to any command line app.
To use it with tclsh, start tclsh with:
rlwrap tclsh
Useful options are -c (file name completion) and -f (add words from a file to the completion list).
To use rlwrap with tclsh with file name completion type:
rlwrap -c tclsh
It would be nice to have a file of all words used in Tcl: commands and subcommands to set rlwrap up using the -f option.
info commands and info procs could help with that. Maybe there are some *.syn files out there to provide such a database.
tclreadline is another way of using readline with Tcl, but requires compiling Tcl and many people report difficulties in getting it to compile.