You can do so by building your own *.py file and adding them to WL_HOME/common/wlst/lib folder. Any *.py file added to this folder will be automatically compiled and imported by WLST when started on that machine. So the custom commands built as definitions inside these modules can be used by calling them on the respective module names.
If you have a TestLib.py stored under WL_HOME/common/wlst/lib folder:
print 'This is a test command'
And if there is a definition called testCmd() defined in it then you can call it as follows:
What you waiting for? Go and add you command to WLST now.