In principle you can add full colors, image capabilities and direct manipulation of objects to a shell, see for example IPython (the Qt-shell) or Mathematica. Ultimately any large enough GUI application will add scripting support, take autocad for example. There are arguably tons of simple applications that are simpler to use if implemented as command line tools, for example video/audio conversion, archival tools