To be less abstract, here's an example of session in a real shell :
morphoschess.jpgPlaying the role the GUI should play, I've typed the following commands : uci, ucinewgame, go infinite, stop, quit.
Everything else is the engine's answer and has to be parsed by the GUI.
"A good bug is a dead bug" (Don Dailey)