> I realised half-way through this project that the "right" way to solve this problem would be by building a client-server shell (not SSH, which is not a shell). A shell where all the interactive elements run on the client and the remote server accepts commands over a socket. However I could not find such a shell. I'll leave this as an exercise to the reader. It would be interesting to split Bash into a front end and…
This is PowerShell’s remoting model! It supports different transports (SSH, WSMan), keeps interactive elements on the client side, and effects actions on the server side.