There are many multitasking "OS" options out there, but all seem to be at least to some extent gui-based, whether the gui is an elaborate windowing system or a simple task bar. These are great, but using them tends to limit available screen area for the current program, block certain keystrokes, or both, and I found myself wanting a way to just switch easily between multiple full-screen programs.
The source can be seen on pastebin here http://pastebin.com/e4Uf8M3p
This uses my goroutine API to handle each session as coroutines, my redirect api to create and switch between buffered redirects for each session, and my ctrlkeys api to generate the ctrl+# input events it uses to switch sessions. To save you the headache of grabbing all of those if you don't already have all of those installed, I've written a simple install program which will grab all three apis and the multishell program itself from pastebin for you. You can get more info on these APIs in my api thread, here.
The installer can be downloaded and run from pastebin:
http://pastebin.com/Pn9wbtJv
just enter the following at a craftOS shell to download and install it:
>pastebin get Pn9wbtJv setupmsh
>setupmsh
You can then delete setupmsh if you want. Just type "multishell" to launch multishell; you'll be presented with a new shell session, bound to ctrl-1. Ctrl-2 will start and switch to a new session; same with ctrl-3 through ctrl-0. exit from any session and you will be returned to another session; close the last session and multishell will start a new shell 1.
I'll be adding more features in the future, possibly making it more screen-like.