Uma boa arquitetura seria dividir a tela em duas janelas, uma para entrada de comando e outra para exibição de programa. Isso é basicamente o que um cliente normal faria. Você pode fazer isso na tela com o comando split ( C-a S ).
Crie um canal nomeado para transmitir sua entrada da janela de entrada para a janela de telnet: mkfifo mud-input-fifo . Em uma das janelas, execute telnet mud.example.com 1234 <mud-input-fifo ou nc mud.example.com 1234 <mud-input-fifo ( nc é netcat , o canivete suíço de rede). Na outra janela, execute rlwrap tee mud-input-fifo ( rlwrap fornece edição de linha para qualquer programa de entrada de linha ).
Emacs também poderia fazer isso. Mas você acabaria implementando um cliente MUD no Emacs, o que já foi feito antes ( mu.el , < href="http://www.waider.ie/hacks/emacs/mud.html"> mud.el , mudel.el , eMUDs ,…).