Yeesh is a straightforward live component wrapper for xterm.js, supporting a predefined set of Yeesh.Commands.
There is a sample Phoenix project in examples folder, although adding it to the Phoenix projects should be a piece of cake.
I needed this functionality for my fancy upcoming Language Agnostic Code Audit SaaS (yes, I am still a believer that CLI interface is the best humanity ever invented—except for chili con carne—and I’m positive any SaaS must have a CLI in browser.)
A shell running lua would provide a really powerful way to interact with your application.
That’s something I probably would have avoided in general. Yeesh is exposed to the client. Giving it a full remote access to the server application sounds like a perilous idea. If I were after that, I’d probably start with an ability to execute an arbitrary elixir code.
Instead, Yeesh allows whitelisted mix tasks, including interactive ones. Wrapping the aforementioned library into an interactive mix tasks should not be difficult, but at the moment it is out of scope of my actual needs.
The lua shell does not give full access to the elixir runtime. It is a sandbox. You have the ability to add lua functions that can execute elixir code. That way the access to the system is limited/controlled. lua provides a powerfull way to automate tasks. And a shell allows to do that interactively.
Shitf+Ctrl+C/V/X for copy/paste/cut to avoid clashes with browser defaults (requires a user to permit clipboard operations in the browser)
Several representation bugs (like double prompt after Ctrl+L)
marcli for markdown
This is most likely a pre-release for v1.0.0. If you have some requests/bug reports, it’s a shout out to file an issue at Issues · Oeditus/yeesh · GitHub