This global variable identifies whether the tcl interpreter is operating in interactive mode or not. If its value is 1 , then the interpreter acts as if it were an interactive interpreter. See [tclsh] for a list of the differences between interactive and non-interactive mode. [Ro] You can shorten commands in interactive mode, e.g.: "inf" for "info". [RS] 2004-03-24 Yup - and this is especially delightful on a [PocketPC] where less stylus-tapping is better. If the abbreviation is unambiguous, like ''ll'' for [llength], it saves time and screen space; if it is ambiguous (e.g. 'l'), it is another [introspection] helper - the educational error message shows you the possible completions, just as [[info command l*]] would have done. % l ambiguous command name "l": label labelframe lappend lindex linsert list listbox llength load loadvfs lower lrange lreplace lsearch lset lsort % ll wrong # args: should be "llength list" Just make sure that the interactive command is tried at global level (0), so that [unknown] (which provides abbreviation mode) finds itself at level 1. ---- If [tclsh] runs a script given on the command line, [tcl_interactive] is set to 0, but adding the line set ::tcl_interactive 1 gives you the described benefits, so I added that to [iFile 1.1]. '''[DGP]''' Note this feature is new in Tcl 8.4. Note also that the intended user of this feature is Tcl's test suite. Use with care. [JMN] 2008 This variable seems to be undefined in new threads created using the Thread package. I suspect this is a bug, as other variable such as tcl_patchLevel do exist in new threads. On loading a module into another thread, which uses ::tcl_patchLevel to change it's logging behaviour slightly I get the error: can't read "::tcl_interactive": no such variable ---- !!!!!! [Tcl syntax help] %| [Category Internals] |% !!!!!!