sophisticated scripter based on Tcl/Tk
Expect is a program that performs programmed dialogue with other interactive programs. It is briefly described by its man page, expect(1). It uses pseudo-tty's to control the child processes, so it is not affected by programs that refuse to read from stdin or pipes. (eg: passwd(1) etc).
Homepage: https://core.tcl-lang.org/expect/index