What is reloading self, is reload-self: edit the program in a text widget and reload. Did I just replace notepad? proc reload_self {} { global tx set gcode [$tx get 1.0 end-1c] file_save $::LOADED_SOURCE_FN $gcode exec tclkit $::LOADED_SOURCE_FN & exit } Where $tx is the text widget. **Video walk-through** Starting from a tclkit, end up with a program with a text widget that reloads the program, replacing any need for a text editor: http://www.youtube.com/watch?v=hQcZE2b_pDE