Starting with version 8.3.4 Tk can be loaded dynamically from a tclsh and automatically enters the event loop. The plain Tk8.3.4 is still missing a pkgIndex.tcl file, so for now one has to load tk by hand: load libtk8.3.so This works for Linux. Please add the correct commands for other platforms. Once Tk does ship with a propper pkgIndex.tcl, it will be loadable platfrom independently with: [[package require Tk]] This opens up some interesting possibilities. For example one can start a tclsh outide of an X session and later load Tk into it to connect to an X server: