Octave is principally a batch or command-line language. However, it does offer some features for constructing graphical interfaces that interact with users.
The GUI elements available are I/O dialogs, a progress bar, and UI elements for plot windows. For example, rather than hardcoding a filename for output results a script can open a dialog box and allow the user to choose a file. Similarly, if a calculation is expected to take a long time a script can display a progress bar. The various UI elements can be used to fully customize the plot window with menubars, toolbars, context menus, pushbuttons, sliders, etc.
Several utility functions make it possible to store private data for use with a GUI which will not pollute the user’s variable space.
Finally, a program written in Octave might want to have long term storage of preferences or state variables. This can be done with user-defined preferences.