References:
Windows Terminal
If you’re running Windows, an easy pick would be Windows Terminal. It’s feature rich (i.e. tabs, screen splits, command palette), open source and built in C++ by Microsoft.
It’s easy to use and learn thanks to the command palette we know so well by now, from editors like Atom and VSCode through the shortcut CTRL+ALT+P
.
Windows Terminal Installation
Install it through the Microsoft Store or through winget:
winget install Microsoft.WindowsTerminal
Setting it as the default terminal app
To set it as the default terminal in Windows, open the Developer settings
and select it as the default terminal app like this:
Another option is to set it as default in it’s own settings. See screenshot further down.
Windows Terminal Settings
Once you’ve configured it, make sure to backup your settings.json
file (e.g. in git). You can open the settings through the shortcut CTRL+,
.
At the bottom left there will be a link to open the settings.json file:
Warp
Another option is Warp. Written in Rust, this is an AI powered alternative that is available cross platform (Windows/Linux/MacOs). It is not open source however and has both free and paid pricing models.
It can do what Windows Terminal can do and more. For instance it has the concept of blocks which allows you to both navigate, filter your output and share your blocks with others. Additionally it allows you to define workflows that you can later access through the Command Palette (CTRL+ALT+P
), to make it easier to remember and run more complex commands. It also has git
support which will show your current branch and click to switch between other local branches.
Warp Installation
Grab the installer from their website or through winget:
winget install Warp.Warp
Warp Settings
With warp you can register an account which will allow you to sync your settings across devices, which is a neat feature!
Warp AI
If you have privacy concerns, you might want to disable the AI feature. This can be done in settings:
WezTerm
WezTerm is another open source, cross platform option that covers Windows, Linux, MacOs and even FreeBSD. It’s written in Rust by Wez Furlong and includes many of the features we’ve already seen in Windows Terminal and Warp, such as pane splits, tabs and the familiar command palette (Ctrl+ALT+P
).
WezTerm installation
Download it from the WezTerm website or through winget:
winget install wez.wezterm
WezTerm configuration
It’s highly configurable using Lua, similar to what we’ve seen in apps like Neovim. The Lua configuration file must be created with the name .wezterm.lua
and put in your home directory (e.g. C:\Users\%username%
in Windows). In the configuration file we can change the default shell and set up fonts, background images, etc as show in the example below.
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
-- change default shell to pwsh
config.default_prog = { 'pwsh.exe', '-NoLogo' }
-- improve visuals
config.window_decorations = 'RESIZE'
config.font = wezterm.font 'CaskaydiaMono Nerd Font'
config.window_background_opacity = 0.7
return config
Visually this config file will make WezTerm look something like this: