Warp terminal

Software development
  |  

Warp terminal

The Terminal app is the Software developers best friend. This is the most used tool followed by the IDE (ignoring the Browser of course).
As you can see in the blog posts I did I experiment(-ed, more on that later) with building my own Terminal application so that I can stuff in all the features that I want to have in the terminal I use.

Sometimes you are so used to the status quo that you are not able to imagine that the tool you use so frequently could be so much better. The same thing happened to me with Terminal apps. The core of every terminal application was basically the same. The way you enter commands, the way your input gets mirrored, the way the output of the command gets shown and so on.
There are a few options to tweak things and enrich the capabilities of this experience like oh-my-zsh or Oh My Posh to name a few.

But then came Warp.

Warp is - at a first glance - just another Terminal emulation app. But once you try it you can see that it does a couple of things differently and completely changes the interaction with the Terminal underneath. I focus here on the things that I use as Warp is full of more features that I do not use at all.

Real text input

Entering commands into a “normal” terminal emulator lacks a few shortcuts and behaviors that you have entering text in any text field.

Things like using ⌥ + ←→ or ⌘ + ←→ to navigate quickly between words or the start / finish, double-clicking a word with the mouse to select it or clicking somewhere into the text to set the cursor position. Simply: Text interaction that you normally get on any Text Input field on a Mac.

Those are all things that Warp gives you! This may sound like a little detail, but this is one of the major game changers!

Warp text input

Blocks

The next big thing are so-called “blocks”.
Every time you execute a command in Warp you start a new block. All the output of the command gets collected inside that block. You can imagine a block as a sub-terminal.
Once the command is finished the block is “closed”.
This has a couple of advantages:

  1. You can quickly jump to the start of a block. How often have you scrolled like an animal to find the place in the output where your command started to analyze what was going wrong? Just one click in Warp.
  2. Search inside a block. Not only can you search the whole terminal content like most other terminals can, but you can limit the search to one block. This makes it really easy to find that one Error log from the last command without accidentally finding an error log from the previous command.
  3. Exit code visualization. When a block closes then it gets colored red if the exit code of the triggered command was not 0. This makes it immediately visible that a command has failed, and it is amazing how big of a difference this subtle thing is.
    Warp blocks

Restoration of old sessions

Warp persists old sessions and restores them on next launch. Not only the tabs that have been open or the current working directories of each tab but also all the blocks from previous command executions.
This is extremely helpful in my use case of shutting down the working computer completely after a day of work and booting it clean the next day. Easy to just continue where you left off.
Warp session restore

Command history and suggestions

Warp tries to help you with entering a command. For this it provides you with inline suggestions of commands you already entered, with directories or files that exist in the current working directory and also some fuzzy search.
You can get a list of previous commands by just hitting ↑. Or you start your command with e.g. a cd and some fragments of the directory you want to enter. Like cd 2023. After hitting “Tab” you are presented with a list of potential matching items. Really nice!
Warp suggestions

Git integration

Finally a neat small feature that is quite nice is git integration. You can see what branch the current working directory is on and how many files are currently changed.

And so much more

Although those are the features I use Warp has many more features that I personally don’t use. You can create Workflows, share them within the team and so on…
If you want to know more you can just go to their website where you can read about all those features.

Caveats

Account

Warp needs an account. Without creating an account with Warp you can’t use the application.

Analytics

Up until recently it also collected analytics data (no Terminal content they said). Gladly this can be turned off by now (and you should do that!).

Addiction

Warp makes addictive. Once you had a Terminal with all those features it will be hard to go back to a “normal” Terminal app. Not a very good negotiation position if Warp decides to change their pricing model. 😁

Summary

All in all I have to say: This is the new gold standard for me.
Some of the features that are baked into Warp can be achieved by using tools like “oh-my-zsh” or “Oh My Posh”. But Warp does those of the box and adds a couple of other features that simply can’t be customized into a default Terminal app.

This makes it much more difficult to continue working on my own Terminal emulator app as the mentioned features of Warp are the new normal for me and I would expect my Terminal application to have those capabilities as well.
Time to search for an alternative project I guess? 😆

Disclaimer:
I know this post sounds like advertisement. There are no benefits for me in writing this. I just wanted to share my experience with Warp.
Just pure fanboyism.

via GIPHY