Babble is a scripting tool that allows one to automate interactive processes (such as conversations with a device or even a shell!) simply by documenting the form of interactions. One provides Babble with a representation of possible conversations in the form of an Extensible-Markup-Language (XML) document, in which one differentiates between what is typed by a user and what is printed by a tool, and in which variations are documented.
Using this markup, together with a declaration of desired variations, Babble undertakes the conversation itself, matching documented printout against what is actually printed, typing user input where indicated, and inserting values of variant data as it works. Using Babble one can not only control the configuration of a device, but also interactively discover a configuration through appropriate documentation of the discovery process. This eliminates the need for normal scripting to accomplish the same task, by providing a robust substitute, at a great savings in time and effort. Babble features include abilities to: