If you implement saving and restoring of processing jobs, they could be re-run in a non-interactive context, or even generated completely outside of the tool by textual manipulation of the format.
While at it, make a non-interactive version of the program that can run headless and just generate output based on command line arguments and/or processing descriptions.