The /lib/jim directory contains both dynamically loadable extensions and pure-Tcl extensions. Dynamically loadable extensions must have a .so file extension Tcl extensions must have a .tcl file extension As long as /lib/jim is in $::auto_path (it is by default), extension abc can be loaded with: package require abc First abc.so will be tried, and then abc.tcl Note that this directory may be something like /lib/jim, /usr/lib/jim or /usr/local/lib/jim, depending upon where jim was installed.