Through the combined use of the three primary user interfaces you can automate a great deal.
1) Command Line Interface (CLI) - The first soft entry based User Interface also known as a command Shell, DOS prompt, command prompt, etc. More Versatile then then the GUI but more difficult to use. Required the User remember more in the way of details of commands, program names and options.
2) Graphical User Interface (GUI) - The came along as the second User Interface and was found to be easier to use but far more limited in versatility than the first. Still there is an element, though less effort, of the user recalling what an graphical icon does, though help systems have added to ease of recall.
3) Users Automation Interface (UAI) - There are many forms, mostly incomplete or
otherwise user limited/restricted, of this interface today. Hardly is it ever recognized
or presented as a User Level interface. Besides the lack of consistency of this
interfaces application in programs, OS's and other such functionality (libraries,
devices, etc.), there is a general lack of understanding the value importance it
is to the user base, upon it's proper application as the third "primary" UI.
This third User Interface has different facets and goes by many different names such as InterProcess Communication, Application Program Interface, Pipes and even Plumber (in Plan9 OS), MS windows has their name for their application of this IPC (as Gui4Cli makes use of), and I'm sure there are many more names and variations.
Perhaps the best user level presentation and application of this third user interface is found in the Amiga Arexx "PORT". It's not the scripting language but the "PORT" that is like a side door for accessing and using functionality, even controlling an application not from the command line or from the GUI, but from outside the application in a manner that allows the user to automate and integrate the functionality of various packages of functionality, such as OS, Libraries, devices, applications, plugins, etc. And his most certainly includes applications of the first two User Interfaces, where sending commands to a shell or GUI package such a Gui4cli, etc..
With these three primary User Interfaces a great deal can be automated and made easier even by the hands of the user. But then what is needed is a way to handle all the different functionality vocabulary, and that is where the Virtual Interaction Configuration comes in!