There have been many shells (bash, zsh, fish) and many terminal emulators (iTerm, Hyper, Windows Terminal) created. But not one that tried to combine these two. Termy is a terminal with a built-in shell that tries to combine these two worlds and provide the user with a better experience.
Termy is made up of cells. This user interface might be familiar to those who've used Jupyter Notebook before.
Two things make up a cell: the prompt and the output. Input goes into the prompt and the output will be shown right below the prompt.
You can reuse cells. After you're cell finished running, you can run it again with the same or a different command.
Instead of loading your shell at start, Termy spawns a new "shell" every time you run a command.
To provide VSCode style autocompletions in the terminal we need know the current state of the shell. But since the shell handles everything internally, external programs don't know what the current state is. Termy goes around this issue by separating the input and output layer and holding its own state.
Since Termy doesn't use the shell as intended, many of the built-in features will stop working (installed plugins, user config).
But don't worry: many
oh-my-zsh plugins will be in Termy and soon you'll also be able to configure your settings!
Don't get me wrong: I like Vim but could never get used to those keybindings. For some quick edits Termy gives you VSCode's powerful editor!
Here are some of the things that are on the roadmap:
- Custom themes
- Command Line Apps (CLA)
- Modern built-in shell with support for structured data
- DefinitelyTyped for the CLI: Typed-CLI (to provide autocompletions for every CLI command)
I've been using Termy as my main terminal for a few months now, and would never go back to the old way of doing things. Probably my favorite feature is that text editing features (cursor select, arrow navigation, cut, paste) work in the prompt!
If you found this interesting please give it a try. Would love to hear your feedback!