A favourite of mine is "tmux".
Warning - some level of spoon-feeding here, though the question is old enough that the original author would no doubt have completed what they originally intended.
You can easily launch tmux in the background, launching an application. Tmux provides an API to send key strokes to the application, as well as connect the application to the terminal if you want to interact with it.
Example:
$ tmux new-session -d -s Super
$ tmux send-keys -t Super: "uuid" "Enter"
$ tmux capture-pane -t Super: -S - -E - -p | cat -n
$ uuid
fe253d00-3432-11eb-9984-cb225a8f7d48
$ tmux kill-session -t Super:
new-session -d -s Super Create a new session called Super in the background (-d). Note -s to new-session names the session. I havent named an application to run, so a shell is launched.
send-keys -t Super: "command" "Enter" Send the keystrokes. Tmux understands many keywords like Enter, PgUp, Escape, etc, otherwise sending UTF and raw codes via send-keys -t Super: $'command\n' also works. Note the -t refers to a target which includes [session]:[window id]:[pane #]. Since I have only the default window and pane, I leave them blank and refer only to the session. If I know there were no other sessions running, I could leave out -t entirely.
capture-pane -t Super: -S [start] -E [end] -p Copies the contents of the window. By default, panes are captures to internal buffers you can save, or paste to other windows. the -p causes the contents to be piped to the screen. Note the captured data can be much longer than a screenfull.
The best part is, if you have left the application or session running, tmux attach -t Super: will drop you into the running session so you can interact with the application.
Many people use tmux to launch long running interactive programs as a background service they can attach to later, or as part of an automated test solution.