A terminal with autocomplete
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 your cell finished running, you can run it again with the same or a different command.
Note: to change directories, enter the path of the directory directly - without
cd. There will be a fallback
cd command in the future.
How does this work?
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.
But this approach also has its downsides
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: soon there will be an option to configure your settings and add plugins!
What about performance?
Electron apps are not slow by default. By making performance a priority they can feel just as fast as a native app.
Currently I'm focused on features that make Termy unique but before for the
v1.0 there will be a performance overhaul. That said, Termy is pretty fast at the moment. Also, the code that interacts with your system is in Rust, which does not have a reputation of being slow.
Does it have
||Edit files using VSCode's editor|
||Lists all the files in a directory|
||Change theme (
Note: Mod stands for ⌘ on Mac and Ctrl on other platforms.
|Run Cell||Enter||Input Focused|
|Insert Suggestion & Run||Mod+Enter||Input Focused|
|Accept or Trigger Suggestion||Tab||Input Focused|
|Save File||Mod+S||Edit Focused|
|Focus Next Cell||Mod+J|
|Focus Previous Cell||Mod+K|
|Focus Next Tab||Mod+Tab|
|Focus Previous Tab||Mod+Shift+Tab|
|Focus Tab (1-9)||Mod+(1-9)|