Does maze support multiple threads or multiple processes?
Both. All threads created by a process running under maze are controlled by maze by default. Optionally maze also controls all new processes created with fork().
An interactive application can run under maze reading its input from a file (instead of waiting for the standard input from terminal).
Does maze support applications written in scripting languages?
Most scripting languages are run by interpreter, which compiles the scripts "on the fly". Maze cannot support an application in this mode. It works directly with binaries produced by compilers. If you can compile your application and run it in a batch mode from the command line, then maze can support it. For instance, if you have a compiled executable called "my_binary" and you can run it in a shell:
then it can run under maze.
Maze is language-agnostic. It interacts with the application on the instruction level. The programming language used to create your application does not matter to maze. Some diagnostic features - such as printing stack with function arguments and line numbers - are available for applications written in C/C++.
It does not matter which thread library you choose. You may even create your threads manually with clone() system call. By now maze has been tested with applications using POSIX pthreads and just::thread libraries, and direct system calls.
The feature is not available yet, but we currently work on it. It will be available in the near future.